From 81da8de9f1865d7afe8702039bdf603f0389c151 Mon Sep 17 00:00:00 2001
From: "b00ste.lyx" <62855857+b00ste@users.noreply.github.com>
Date: Wed, 28 Feb 2024 06:15:03 +0200
Subject: [PATCH 1/2] docs: add packages table, npm version to each package
(#886)
* chore: create packages table
* chore: add npm versaion badges to packages
---
README.md | 28 ++++++++++
packages/lsp0-contracts/README.md | 4 +-
packages/lsp1-contracts/README.md | 6 +--
packages/lsp10-contracts/README.md | 6 +--
packages/lsp12-contracts/README.md | 2 +-
packages/lsp14-contracts/README.md | 2 +-
packages/lsp16-contracts/README.md | 2 +-
packages/lsp17-contracts/README.md | 2 +-
.../README.md | 2 +-
packages/lsp1delegate-contracts/README.md | 2 +-
packages/lsp2-contracts/README.md | 2 +-
packages/lsp20-contracts/README.md | 2 +-
packages/lsp23-contracts/README.md | 2 +-
packages/lsp25-contracts/README.md | 2 +-
packages/lsp3-contracts/README.md | 52 +------------------
packages/lsp4-contracts/README.md | 2 +-
packages/lsp5-contracts/README.md | 2 +-
packages/lsp6-contracts/README.md | 2 +-
packages/lsp7-contracts/README.md | 2 +-
packages/lsp8-contracts/README.md | 2 +-
packages/lsp9-contracts/README.md | 2 +-
packages/universalprofile-contracts/README.md | 2 +-
22 files changed, 53 insertions(+), 77 deletions(-)
diff --git a/README.md b/README.md
index 9144893d9..aa4d42795 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,34 @@ For more information see [Documentation](https://docs.lukso.tech/standards/smart
| :warning: | _This package is currently in early stages of development,
use for testing or experimentation purposes only._ |
| :-------: | :----------------------------------------------------------------------------------------------------------------- |
+## Packages
+
+This repo contains packages for the Solidity implementation of the LSP smart contracts.
+
+| Package | NPM | Description |
+| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
+| [`@lukso/lsp0-contracts`](./packages/lsp0-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp0-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp0-contracts) | LSP0 ERC725Account |
+| [`@lukso/lsp1-contracts`](./packages/lsp1-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp1-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp1-contracts) | LSP1 Universal Receiver |
+| [`@lukso/lsp1delegate-contracts`](./packages/lsp1delegate-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp1delegate-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp1delegate-contracts) | LSP1 Universal Receiver Delegate |
+| [`@lukso/lsp2-contracts`](./packages/lsp2-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp2-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp2-contracts) | LSP2 ERC725Y JSON Schema |
+| [`@lukso/lsp3-contracts`](./packages/lsp3-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp3-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp3-contracts) | LSP3 Profile Metadata |
+| [`@lukso/lsp4-contracts`](./packages/lsp4-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp4-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp4-contracts) | LSP4 Digital Asset Metadata |
+| [`@lukso/lsp5-contracts`](./packages/lsp5-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp5-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp5-contracts) | LSP5 Received Assets |
+| [`@lukso/lsp6-contracts`](./packages/lsp6-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp6-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp6-contracts) | LSP6 Key Manager |
+| [`@lukso/lsp7-contracts`](./packages/lsp7-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp7-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp7-contracts) | LSP7 Digital Asset |
+| [`@lukso/lsp8-contracts`](./packages/lsp8-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp8-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp8-contracts) | LSP8 Identifiable Digital Asset |
+| [`@lukso/lsp9-contracts`](./packages/lsp9-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp9-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp9-contracts) | LSP9 Vault |
+| [`@lukso/lsp10-contracts`](./packages/lsp10-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp10-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp10-contracts) | LSP10 Received Vaults |
+| [`@lukso/lsp12-contracts`](./packages/lsp12-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp12-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp12-contracts) | LSP12 Issued Assets |
+| [`@lukso/lsp14-contracts`](./packages/lsp14-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp14-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp14-contracts) | LSP14 Ownable 2 Step |
+| [`@lukso/lsp16-contracts`](./packages/lsp16-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp16-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp16-contracts) | LSP16 Universal Factory |
+| [`@lukso/lsp17-contracts`](./packages/lsp17-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp17-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp17-contracts) | LSP17 Extensions Package |
+| [`@lukso/lsp17contractextension-contracts`](./packages/lsp17contractextension-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp17contractextension-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp17contractextension-contracts) | LSP17 Contract Extension Package |
+| [`@lukso/lsp20-contracts`](./packages/lsp20-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp20-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp20-contracts) | LSP20 Call Verification |
+| [`@lukso/lsp23-contracts`](./packages/lsp23-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp23-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp23-contracts) | LSP23 Linked Contracts Factory |
+| [`@lukso/lsp25-contracts`](./packages/lsp25-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/lsp25-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp25-contracts) | LSP25 Execute Relay Call |
+| [`@lukso/universalprofile-contracts`](./packages/universalprofile-contracts) | [![npm version](https://img.shields.io/npm/v/@lukso/universalprofile-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/universalprofile-contracts) | Universal Profile |
+
## Installation
### npm
diff --git a/packages/lsp0-contracts/README.md b/packages/lsp0-contracts/README.md
index d2a3f5fa2..440de54b1 100644
--- a/packages/lsp0-contracts/README.md
+++ b/packages/lsp0-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP0 ERC725Account
+# LSP0 ERC725Account · [![npm version](https://img.shields.io/npm/v/@lukso/lsp0-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp0-contracts)
-Package for the LSP0 ER725Account standard.
+Package for the LSP0 ERC725Account standard.
diff --git a/packages/lsp1-contracts/README.md b/packages/lsp1-contracts/README.md
index 69b3ff4ff..844e82f92 100755
--- a/packages/lsp1-contracts/README.md
+++ b/packages/lsp1-contracts/README.md
@@ -1,5 +1,3 @@
-# LSP Template
+# LSP1 Universal Receiver · [![npm version](https://img.shields.io/npm/v/@lukso/lsp1-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp1-contracts)
-This project can be used as a skeleton to build a package for a LSP implementation in Solidity (LUKSO Standard Proposal)
-
-It is based on Hardhat.
+Package for the LSP1 Universal Receiver standard.
diff --git a/packages/lsp10-contracts/README.md b/packages/lsp10-contracts/README.md
index 69b3ff4ff..e3d535d0c 100755
--- a/packages/lsp10-contracts/README.md
+++ b/packages/lsp10-contracts/README.md
@@ -1,5 +1,3 @@
-# LSP Template
+# LSP10 Received Vaults · [![npm version](https://img.shields.io/npm/v/@lukso/lsp10-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp10-contracts)
-This project can be used as a skeleton to build a package for a LSP implementation in Solidity (LUKSO Standard Proposal)
-
-It is based on Hardhat.
+Package for the LSP10 Received Vaults standard.
diff --git a/packages/lsp12-contracts/README.md b/packages/lsp12-contracts/README.md
index e23f77cd6..71c57f54e 100644
--- a/packages/lsp12-contracts/README.md
+++ b/packages/lsp12-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP12 Issued Assets
+# · [![npm version](https://img.shields.io/npm/v/@lukso/lsp12-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp12-contracts)
Package for the LSP12 Issued Assets standard.
diff --git a/packages/lsp14-contracts/README.md b/packages/lsp14-contracts/README.md
index fc22873a4..6790c77d1 100755
--- a/packages/lsp14-contracts/README.md
+++ b/packages/lsp14-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP14 Ownable 2 Step
+# LSP14 Ownable 2 Step · [![npm version](https://img.shields.io/npm/v/@lukso/lsp14-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp14-contracts)
Package for the LSP14 Ownable 2 Step standard.
diff --git a/packages/lsp16-contracts/README.md b/packages/lsp16-contracts/README.md
index 98655b90c..291cacccb 100644
--- a/packages/lsp16-contracts/README.md
+++ b/packages/lsp16-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP16 Universal Factory
+# LSP16 Universal Factory · [![npm version](https://img.shields.io/npm/v/@lukso/lsp16-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp16-contracts)
Package for the [LSP16-UniversalFactory](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-16-UniversalFactory.md) standard, contains a contract that allows deploying contracts on multiple chains with the same address.
diff --git a/packages/lsp17-contracts/README.md b/packages/lsp17-contracts/README.md
index b20e99c1b..e32a04e8e 100644
--- a/packages/lsp17-contracts/README.md
+++ b/packages/lsp17-contracts/README.md
@@ -1,4 +1,4 @@
-# LSP17 Extensions Package
+# LSP17 Extensions Package · [![npm version](https://img.shields.io/npm/v/@lukso/lsp17-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp17-contracts)
Package for the LSP17 Extensions, that includes the following extensions:
diff --git a/packages/lsp17contractextension-contracts/README.md b/packages/lsp17contractextension-contracts/README.md
index 17915094b..32174d962 100644
--- a/packages/lsp17contractextension-contracts/README.md
+++ b/packages/lsp17contractextension-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP17 Contract Extension Package
+# LSP17 Contract Extension Package · [![npm version](https://img.shields.io/npm/v/@lukso/lsp17contractextension-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp17contractextension-contracts)
Package for the LSP17 Contract Extension
diff --git a/packages/lsp1delegate-contracts/README.md b/packages/lsp1delegate-contracts/README.md
index fe549e2c2..0b53ff37e 100644
--- a/packages/lsp1delegate-contracts/README.md
+++ b/packages/lsp1delegate-contracts/README.md
@@ -1,4 +1,4 @@
-# LSP1 Universal Receiver Delegate
+# LSP1 Universal Receiver Delegate · [![npm version](https://img.shields.io/npm/v/@lukso/lsp1delegate-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp1delegate-contracts)
Smart contract implementations of LSP1 Universal Receiver Delegates
to register and manage:
diff --git a/packages/lsp2-contracts/README.md b/packages/lsp2-contracts/README.md
index 3f41dfb41..a398f1955 100755
--- a/packages/lsp2-contracts/README.md
+++ b/packages/lsp2-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP2 ERC725Y JSON Schema
+# LSP2 ERC725Y JSON Schema · [![npm version](https://img.shields.io/npm/v/@lukso/lsp2-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp2-contracts)
Package for the LSP2 ERC725Y JSON Schema standard.
diff --git a/packages/lsp20-contracts/README.md b/packages/lsp20-contracts/README.md
index e35c1fd90..46e76342d 100755
--- a/packages/lsp20-contracts/README.md
+++ b/packages/lsp20-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP20 Call Verification
+# LSP20 Call Verification · [![npm version](https://img.shields.io/npm/v/@lukso/lsp20-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp20-contracts)
Package for the LSP20 Call Verification standard.
diff --git a/packages/lsp23-contracts/README.md b/packages/lsp23-contracts/README.md
index 2ef872333..a2d5d1005 100644
--- a/packages/lsp23-contracts/README.md
+++ b/packages/lsp23-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP23 Linked Contracts Factory
+# LSP23 Linked Contracts Factory · [![npm version](https://img.shields.io/npm/v/@lukso/lsp23-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp23-contracts)
Package for the LSP23 Linked Contracts Factory.
diff --git a/packages/lsp25-contracts/README.md b/packages/lsp25-contracts/README.md
index de272643c..7f7a5070a 100644
--- a/packages/lsp25-contracts/README.md
+++ b/packages/lsp25-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP25 Execute Relay Call
+# LSP25 Execute Relay Call · [![npm version](https://img.shields.io/npm/v/@lukso/lsp25-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp25-contracts)
Package for the LSP25 Execute Relay Call standard.
diff --git a/packages/lsp3-contracts/README.md b/packages/lsp3-contracts/README.md
index 44c90d86b..67206545b 100644
--- a/packages/lsp3-contracts/README.md
+++ b/packages/lsp3-contracts/README.md
@@ -1,51 +1,3 @@
-# LSP Package Template
+# LSP3 Profile Metadata · [![npm version](https://img.shields.io/npm/v/@lukso/lsp3-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp3-contracts)
-This project can be used as a skeleton to build a package for a LSP implementation in Solidity (LUKSO Standard Proposal)
-
-It is based on Hardhat.
-
-## How to setup a LSP as a package?
-
-1. Copy the `template/` folder and paste it under the `packages/` folder. Then rename this `template/` folder that you copied with the LSP name.
-
-You can do so either:
-
-- manually, by copying the folder and pasting it inside `packages` and then renaming it.
- or
-- by running the following command from the root of the repository.
-
-```bash
-cp -r template packages/lsp-name
-```
-
-2. Update the `"name"` and `"description"` field inside the `package.json` for this LSP package you just created.
-
-3. Setup the dependencies
-
-If this LSP uses external dependencies like `@openzeppelin/contracts`, put them under `dependencies` with the version number.
-
-```json
-"@openzeppelin/contracts": "^4.9.3"
-```
-
-If this LSP uses other LSP as dependencies, put each LSP dependency as shown below. This will use the current code in the package:
-
-```json
-"@lsp2": "*"
-```
-
-4. Setup the npm commands for linting, building, testing, etc... under the `"scripts"` in the `package.json`
-
-5. Test that all commands you setup run successfully
-
-By running the commands below, your LSP package should come up in the list of packages that Turbo is running this command for.
-
-```bash
-turbo build
-turbo lint
-turbo lint:solidity
-turbo test
-turbo test:foundry
-```
-
-6. Finally update the relevant information in the `README.md` file in the folder of the newly created package, such as the title at the top, some description, etc...
+Package for the LSP3 Profile Metadata standard.
diff --git a/packages/lsp4-contracts/README.md b/packages/lsp4-contracts/README.md
index e5b958d30..1ad07fe4e 100644
--- a/packages/lsp4-contracts/README.md
+++ b/packages/lsp4-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP4 Digital Asset Metadata
+# LSP4 Digital Asset Metadata · [![npm version](https://img.shields.io/npm/v/@lukso/lsp4-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp4-contracts)
Package for the LSP4 Digital Asset Metadata standard.
diff --git a/packages/lsp5-contracts/README.md b/packages/lsp5-contracts/README.md
index 5b1c05cab..377aee038 100644
--- a/packages/lsp5-contracts/README.md
+++ b/packages/lsp5-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP5 Received Assets
+# LSP5 Received Assets · [![npm version](https://img.shields.io/npm/v/@lukso/lsp5-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp5-contracts)
Package for the LSP5 Received Assets standard.
diff --git a/packages/lsp6-contracts/README.md b/packages/lsp6-contracts/README.md
index 3fb354f12..f0b0afca7 100644
--- a/packages/lsp6-contracts/README.md
+++ b/packages/lsp6-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP6 Key Manager
+# LSP6 Key Manager · [![npm version](https://img.shields.io/npm/v/@lukso/lsp6-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp6-contracts)
Package for the LSP6 Key Manager standard, to enable granting multiple permissions to controllers.
diff --git a/packages/lsp7-contracts/README.md b/packages/lsp7-contracts/README.md
index 7b7753e30..7d878e99a 100644
--- a/packages/lsp7-contracts/README.md
+++ b/packages/lsp7-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP7 Digital Asset
+# LSP7 Digital Asset · [![npm version](https://img.shields.io/npm/v/@lukso/lsp7-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp7-contracts)
Package for the LSP7 Digital Asset standard.
diff --git a/packages/lsp8-contracts/README.md b/packages/lsp8-contracts/README.md
index b6ac699ad..45de90454 100644
--- a/packages/lsp8-contracts/README.md
+++ b/packages/lsp8-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP8 Identifiable Digital Asset
+# LSP8 Identifiable Digital Asset · [![npm version](https://img.shields.io/npm/v/@lukso/lsp8-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp8-contracts)
Package for the LSP8 Identifiable Digital Asset Standard.
diff --git a/packages/lsp9-contracts/README.md b/packages/lsp9-contracts/README.md
index 45ac3b95b..8ad3ad43c 100644
--- a/packages/lsp9-contracts/README.md
+++ b/packages/lsp9-contracts/README.md
@@ -1,3 +1,3 @@
-# LSP9 Vault
+# LSP9 Vault · [![npm version](https://img.shields.io/npm/v/@lukso/lsp9-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp9-contracts)
Package for the LSP9 Vault standard.
diff --git a/packages/universalprofile-contracts/README.md b/packages/universalprofile-contracts/README.md
index c1e0875bb..0a89a85cd 100644
--- a/packages/universalprofile-contracts/README.md
+++ b/packages/universalprofile-contracts/README.md
@@ -1,4 +1,4 @@
-# Universal Profile
+# Universal Profile · [![npm version](https://img.shields.io/npm/v/@lukso/universalprofile-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/universalprofile-contracts)
Smart Contract implementation for **Universal Profile**, a combination of LSP0 ERC725 Account and LSP3 Profile Metadata.
From d41145ccb8fe35e918ccf2b64c784908cfd06c1a Mon Sep 17 00:00:00 2001
From: Jean Cvllr <31145285+CJ42@users.noreply.github.com>
Date: Thu, 29 Feb 2024 11:27:28 -0700
Subject: [PATCH 2/2] build!: upgrade all packages + root to latest Hardhat
version and ethers v6 (#889)
---
.github/workflows/build-lint-test.yml | 7 +-
.gitignore | 4 +-
constants.ts | 2 +-
.../LSP20Owners/BothCallReturnMagicValue.sol | 28 +
.../LSP20Owners/FirstCallReturnMagicValue.sol | 31 +
.../SecondCallReturnExpandedValue.sol | 39 +
deploy/001_deploy_universal_profile.ts | 4 -
deploy/002_deploy_key_manager.ts | 4 -
.../003_deploy_universal_receiver_delegate.ts | 4 -
...eploy_universal_receiver_delegate_vault.ts | 4 -
deploy/006_deploy_base_universal_profile.ts | 4 -
deploy/007_deploy_base_key_manager.ts | 4 -
deploy/008_deploy_lsp7_mintable.ts | 6 +-
deploy/009_deploy_lsp8_mintable.ts | 7 +-
deploy/010_deploy_base_lsp7_mintable.ts | 4 -
deploy/011_deploy_base_lsp8_mintable.ts | 4 -
deploy/012_deploy_vault.ts | 4 -
deploy/013_deploy_base_vault.ts | 4 -
dodoc/config.ts | 12 +-
hardhat.config.ts | 4 +-
package-lock.json | 6344 +++++------------
package.json | 60 +-
packages/lsp0-contracts/hardhat.config.ts | 2 +-
packages/lsp0-contracts/package.json | 17 -
packages/lsp1-contracts/hardhat.config.ts | 2 +-
packages/lsp1-contracts/package.json | 21 +-
packages/lsp10-contracts/hardhat.config.ts | 2 +-
packages/lsp10-contracts/package.json | 18 -
packages/lsp12-contracts/hardhat.config.ts | 2 +-
packages/lsp12-contracts/package.json | 17 -
packages/lsp14-contracts/hardhat.config.ts | 2 +-
packages/lsp14-contracts/package.json | 17 -
packages/lsp16-contracts/hardhat.config.ts | 2 +-
packages/lsp16-contracts/package.json | 21 +-
.../tests/LSP16UniversalFactory.test.ts | 306 +-
packages/lsp17-contracts/hardhat.config.ts | 2 +-
packages/lsp17-contracts/package.json | 17 -
.../hardhat.config.ts | 2 +-
.../package.json | 17 -
.../lsp1delegate-contracts/hardhat.config.ts | 2 +-
packages/lsp1delegate-contracts/package.json | 17 -
packages/lsp2-contracts/hardhat.config.ts | 2 +-
packages/lsp2-contracts/package.json | 17 -
.../tests/LSP2UtilsLibrary.test.ts | 2 +-
packages/lsp20-contracts/hardhat.config.ts | 2 +-
packages/lsp20-contracts/package.json | 17 -
packages/lsp23-contracts/hardhat.config.ts | 2 +-
packages/lsp23-contracts/package.json | 17 -
packages/lsp25-contracts/hardhat.config.ts | 2 +-
packages/lsp25-contracts/package.json | 17 -
.../tests/LSP25MultiChannelNonce.test.ts | 12 +-
packages/lsp3-contracts/hardhat.config.ts | 2 +-
packages/lsp3-contracts/package.json | 17 -
packages/lsp4-contracts/hardhat.config.ts | 2 +-
packages/lsp4-contracts/package.json | 17 -
packages/lsp5-contracts/hardhat.config.ts | 2 +-
packages/lsp5-contracts/package.json | 18 -
packages/lsp6-contracts/hardhat.config.ts | 2 +-
packages/lsp6-contracts/package.json | 17 -
packages/lsp7-contracts/hardhat.config.ts | 2 +-
packages/lsp7-contracts/package.json | 17 -
packages/lsp8-contracts/hardhat.config.ts | 2 +-
packages/lsp8-contracts/package.json | 17 -
packages/lsp9-contracts/hardhat.config.ts | 2 +-
packages/lsp9-contracts/package.json | 17 -
.../hardhat.config.ts | 2 +-
.../universalprofile-contracts/package.json | 17 -
scripts/ci/check-deployer-balance.ts | 8 +-
scripts/ci/docs-generate.ts | 4 +-
template/hardhat.config.ts | 2 +-
template/package.json | 17 -
tests/Benchmark.test.ts | 228 +-
.../LSP11BasicSocialRecovery.behaviour.ts | 195 +-
.../LSP11BasicSocialRecovery.test.ts | 6 +-
.../LSP11BasicSocialRecoveryInit.test.ts | 11 +-
.../LSP14Ownable2Step.behaviour.ts | 105 +-
.../LSP17Extendable.behaviour.ts | 171 +-
.../LSP17Extendable.test.ts | 36 +-
.../LSP17ExtendableTokens.behaviour.ts | 90 +-
.../Extension4337/4337.test.ts | 44 +-
.../LSP17Extensions/helpers/Create2Factory.ts | 56 +-
tests/LSP17Extensions/helpers/UserOp.ts | 68 +-
tests/LSP17Extensions/helpers/utils.ts | 12 +-
.../LSP1UniversalReceiver.behaviour.ts | 37 +-
...P1UniversalReceiverDelegateUP.behaviour.ts | 829 +--
.../LSP1UniversalReceiverDelegateUP.test.ts | 1 +
...niversalReceiverDelegateVault.behaviour.ts | 560 +-
...LSP1UniversalReceiverDelegateVault.test.ts | 10 +-
.../LSP20CallVerification.behaviour.ts | 102 +-
.../LSP20WithLSP14.behaviour.ts | 109 +-
.../PermissionChangeAddExtensions.test.ts | 85 +-
.../LSP6/Admin/PermissionChangeAddURD.test.ts | 48 +-
.../LSP6/Admin/PermissionChangeOwner.test.ts | 88 +-
.../Interactions/AllowedAddresses.test.ts | 53 +-
.../Interactions/AllowedFunctions.test.ts | 135 +-
.../Interactions/AllowedStandards.test.ts | 95 +-
.../Interactions/ERC725XExecuteBatch.test.ts | 146 +-
.../LSP6/Interactions/OtherScenarios.test.ts | 6 +-
.../LSP6/Interactions/PermissionCall.test.ts | 160 +-
.../PermissionDelegateCall.test.ts | 21 +-
.../Interactions/PermissionDeploy.test.ts | 50 +-
.../Interactions/PermissionStaticCall.test.ts | 109 +-
.../PermissionTransferValue.test.ts | 346 +-
.../LSP6/Interactions/Security.test.ts | 113 +-
.../LSP6/LSP20WithLSP6.behaviour.ts | 3 +-
.../LSP6/LSP20WithLSP6.test.ts | 5 +-
.../LSP6/LSP20WithLSP6Init.test.ts | 22 +-
.../SetData/AllowedERC725YDataKeys.test.ts | 407 +-
.../LSP6/SetData/PermissionSetData.test.ts | 249 +-
.../PermissionChangeAddController.test.ts | 184 +-
.../SetPermissions/SetAllowedCalls.test.ts | 2 +-
.../SetAllowedERC725YDataKeys.test.ts | 20 +-
.../LSP23LinkedContractsDeployment.test.ts | 327 +-
.../LSP23LinkedContractsDeployment/helpers.ts | 16 +-
.../LSP4DigitalAssetMetadata.behaviour.ts | 30 +-
.../PermissionChangeAddExtensions.test.ts | 121 +-
.../Admin/PermissionChangeAddURD.test.ts | 48 +-
.../Admin/PermissionChangeOwner.test.ts | 92 +-
.../Admin/PermissionSign.test.ts | 26 +-
.../Interactions/AllowedAddresses.test.ts | 48 +-
.../Interactions/AllowedFunctions.test.ts | 141 +-
.../Interactions/AllowedStandards.test.ts | 80 +-
.../Interactions/BatchExecute.test.ts | 219 +-
.../InvalidExecutePayloads.test.ts | 6 +-
.../Interactions/PermissionCall.test.ts | 189 +-
.../PermissionDelegateCall.test.ts | 26 +-
.../Interactions/PermissionDeploy.test.ts | 213 +-
.../Interactions/PermissionStaticCall.test.ts | 188 +-
.../PermissionTransferValue.test.ts | 394 +-
.../LSP6ControlledToken.test.ts | 56 +-
.../LSP6KeyManager.behaviour.ts | 7 +-
tests/LSP6KeyManager/LSP6KeyManager.test.ts | 7 +-
.../LSP6KeyManager/LSP6KeyManagerInit.test.ts | 19 +-
.../Relay/ExecuteRelayCall.test.ts | 320 +-
.../Relay/MultiChannelNonce.test.ts | 106 +-
.../SetData/AllowedERC725YDataKeys.test.ts | 392 +-
.../SetData/PermissionSetData.test.ts | 272 +-
.../PermissionChangeAddController.test.ts | 152 +-
.../SetPermissions/SetAllowedCalls.test.ts | 2 +-
.../SetAllowedERC725YDataKeys.test.ts | 32 +-
.../internals/AllowedCalls.internal.ts | 87 +-
.../AllowedERC725YDataKeys.internal.ts | 240 +-
.../internals/Execute.internal.ts | 4 +-
.../internals/ReadPermissions.internal.ts | 4 +-
.../internals/SetData.internal.ts | 32 +-
.../LSP7CappedSupply.behaviour.ts | 18 +-
.../LSP7DigitalAsset.behaviour.ts | 308 +-
.../LSP7Mintable.behaviour.ts | 47 +-
.../proxy/LSP7CappedSupplyInit.test.ts | 13 +-
.../proxy/LSP7DigitalAssetInit.test.ts | 10 +-
.../proxy/LSP7MintableInit.test.ts | 11 +-
.../standard/LSP7CappedSupply.test.ts | 4 +-
.../standard/LSP7DigitalAsset.test.ts | 6 +-
.../standard/LSP7Mintable.test.ts | 2 +-
.../LSP8CappedSupply.behaviour.ts | 26 +-
.../LSP8Enumerable.behaviour.ts | 32 +-
.../LSP8IdentifiableDigitalAsset.behaviour.ts | 159 +-
.../LSP8Mintable.behaviour.ts | 44 +-
.../proxy/LSP8BurnableInit.test.ts | 11 +-
.../proxy/LSP8CappedSupplyInit.test.ts | 13 +-
.../proxy/LSP8EnumerableInit.test.ts | 9 +-
.../LSP8IdentifiableDigitalAssetInit.test.ts | 8 +-
.../proxy/LSP8MintableInit.test.ts | 11 +-
.../standard/LSP8Burnable.test.ts | 4 +-
.../standard/LSP8CappedSupply.test.ts | 4 +-
.../standard/LSP8Enumerable.test.ts | 2 +-
.../LSP8IdentifiableDigitalAsset.test.ts | 6 +-
.../standard/LSP8Mintable.test.ts | 2 +-
tests/LSP9Vault/LSP9Vault.behaviour.ts | 206 +-
tests/LSP9Vault/LSP9Vault.test.ts | 8 +-
tests/LSP9Vault/LSP9VaultInit.test.ts | 15 +-
tests/Mocks/ABIEncoder.test.ts | 24 +-
tests/Mocks/ERC165Interfaces.test.ts | 2 +-
tests/Mocks/KeyManagerExecutionCosts.test.ts | 52 +-
tests/Mocks/LSP1TypeIDs.test.ts | 2 +-
...RC725XBatchExecuteToERC725XExecute.test.ts | 215 +-
...RC725XExecuteToERC725XBatchExecute.test.ts | 215 +-
.../ERC725XExecuteToERC725XExecute.test.ts | 127 +-
...ExecuteToLSP6BatchExecuteRelayCall.test.ts | 61 +-
...C725XExecuteToLSP6ExecuteRelayCall.test.ts | 61 +-
.../LSP20/LSP20WithLSP6Reentrancy.test.ts | 5 +-
tests/Reentrancy/LSP20/reentrancyHelpers.ts | 56 +-
tests/Reentrancy/LSP6/LSP6Reentrancy.test.ts | 137 +-
...gleExecuteRelayCallToSingleExecute.test.ts | 140 +-
...eRelayCallToSingleExecuteRelayCall.test.ts | 61 +-
.../LSP6/SingleExecuteToBatchExecute.test.ts | 139 +-
...ngleExecuteToBatchExecuteRelayCall.test.ts | 61 +-
.../LSP6/SingleExecuteToSingleExecute.test.ts | 139 +-
...gleExecuteToSingleExecuteRelayCall.test.ts | 62 +-
tests/Reentrancy/LSP6/reentrancyHelpers.ts | 56 +-
tests/Reentrancy/Reentrancy.test.ts | 5 +-
tests/Reentrancy/ReentrancyInit.test.ts | 17 +-
tests/UniversalProfile.behaviour.ts | 164 +-
tests/UniversalProfile.test.ts | 7 +-
tests/UniversalProfileInit.test.ts | 36 +-
tests/utils/context.ts | 7 +-
tests/utils/fixtures.ts | 66 +-
tests/utils/helpers.ts | 69 +-
tests/utils/tokens.ts | 4 +-
199 files changed, 8308 insertions(+), 10918 deletions(-)
create mode 100644 contracts/Mocks/LSP20Owners/BothCallReturnMagicValue.sol
create mode 100644 contracts/Mocks/LSP20Owners/FirstCallReturnMagicValue.sol
create mode 100644 contracts/Mocks/LSP20Owners/SecondCallReturnExpandedValue.sol
diff --git a/.github/workflows/build-lint-test.yml b/.github/workflows/build-lint-test.yml
index 4e01a0779..f8ac31d63 100644
--- a/.github/workflows/build-lint-test.yml
+++ b/.github/workflows/build-lint-test.yml
@@ -69,8 +69,7 @@ jobs:
test-suites:
strategy:
matrix:
- lsp:
- [
+ lsp: [
"up",
"upinit",
"lsp1",
@@ -85,7 +84,9 @@ jobs:
"lsp11",
"lsp11init",
"lsp17",
- "lsp17extensions",
+ # Deploying NickFactory currently fails with latest Hardhat version. Commenting out temporarily until resolved
+ # See following issue: https://github.com/NomicFoundation/hardhat/issues/4939
+ # "lsp17extensions",
"lsp20",
"lsp20init",
"lsp23",
diff --git a/.gitignore b/.gitignore
index b9e42798d..9f29c4817 100644
--- a/.gitignore
+++ b/.gitignore
@@ -135,9 +135,7 @@ forge-cache/
gas_benchmark.md
# Exclude build output folders
-/common
-/module
-/contracts.ts
+/**/contracts.ts
/devdocs
/userdocs
diff --git a/constants.ts b/constants.ts
index 85b4b69f4..b52770160 100644
--- a/constants.ts
+++ b/constants.ts
@@ -2,7 +2,7 @@
* Set of constants values as defined in each LUKSO Standards Proposals (LSPs).
* @see https://github.com/lukso-network/LIPs/tree/main/LSPs
*/
-export * from './contracts';
+// export * from './contracts';
import { INTERFACE_ID_LSP0ERC725Account, LSP0_TYPE_IDS } from '@lukso/lsp0-contracts';
import { INTERFACE_ID_LSP1, LSP1DataKeys } from '@lukso/lsp1-contracts';
diff --git a/contracts/Mocks/LSP20Owners/BothCallReturnMagicValue.sol b/contracts/Mocks/LSP20Owners/BothCallReturnMagicValue.sol
new file mode 100644
index 000000000..93abb971e
--- /dev/null
+++ b/contracts/Mocks/LSP20Owners/BothCallReturnMagicValue.sol
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: Apache-2.0
+pragma solidity ^0.8.4;
+
+/**
+ * @title sample contract used for testing
+ */
+contract BothCallReturnMagicValue {
+ function lsp20VerifyCall(
+ address /*caller*/,
+ uint256 /*value*/,
+ bytes memory /*data*/
+ ) external pure returns (bytes4 magicValue) {
+ return
+ bytes4(
+ abi.encodePacked(
+ bytes3(BothCallReturnMagicValue.lsp20VerifyCall.selector),
+ hex"01"
+ )
+ );
+ }
+
+ function lsp20VerifyCallResult(
+ bytes32 /*callHash*/,
+ bytes memory /*result*/
+ ) external pure returns (bytes4) {
+ return BothCallReturnMagicValue.lsp20VerifyCallResult.selector;
+ }
+}
diff --git a/contracts/Mocks/LSP20Owners/FirstCallReturnMagicValue.sol b/contracts/Mocks/LSP20Owners/FirstCallReturnMagicValue.sol
new file mode 100644
index 000000000..fcdf2beb2
--- /dev/null
+++ b/contracts/Mocks/LSP20Owners/FirstCallReturnMagicValue.sol
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: Apache-2.0
+pragma solidity ^0.8.4;
+
+/**
+ * @title sample contract used for testing
+ */
+contract FirstCallReturnMagicValue {
+ function lsp20VerifyCall(
+ address /*caller*/,
+ uint256 /*value*/,
+ bytes memory /*data*/
+ ) external pure returns (bytes4 magicValue) {
+ return
+ bytes4(
+ abi.encodePacked(
+ bytes3(FirstCallReturnMagicValue.lsp20VerifyCall.selector),
+ hex"00"
+ )
+ );
+ }
+
+ /**
+ * @dev should not be called
+ */
+ function lsp20VerifyCallResult(
+ bytes32 /*callHash*/,
+ bytes memory /*result*/
+ ) external pure returns (bytes4) {
+ revert("This revert will not be triggered");
+ }
+}
diff --git a/contracts/Mocks/LSP20Owners/SecondCallReturnExpandedValue.sol b/contracts/Mocks/LSP20Owners/SecondCallReturnExpandedValue.sol
new file mode 100644
index 000000000..301368254
--- /dev/null
+++ b/contracts/Mocks/LSP20Owners/SecondCallReturnExpandedValue.sol
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: Apache-2.0
+pragma solidity ^0.8.4;
+
+/**
+ * @title sample contract used for testing
+ */
+contract SecondCallReturnExpandedValue {
+ function lsp20VerifyCall(
+ address /*caller*/,
+ uint256 /*value*/,
+ bytes memory /*data*/
+ ) external pure returns (bytes4 magicValue) {
+ return
+ bytes4(
+ abi.encodePacked(
+ bytes3(
+ SecondCallReturnExpandedValue.lsp20VerifyCall.selector
+ ),
+ hex"01"
+ )
+ );
+ }
+
+ function lsp20VerifyCallResult(
+ bytes32 /*callHash*/,
+ bytes memory /*result*/
+ ) external pure returns (bytes32) {
+ return
+ bytes32(
+ bytes.concat(
+ bytes4(
+ SecondCallReturnExpandedValue
+ .lsp20VerifyCallResult
+ .selector
+ )
+ )
+ );
+ }
+}
diff --git a/deploy/001_deploy_universal_profile.ts b/deploy/001_deploy_universal_profile.ts
index 3c35d1c2b..7e37e668a 100644
--- a/deploy/001_deploy_universal_profile.ts
+++ b/deploy/001_deploy_universal_profile.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
const deployUniversalProfile: DeployFunction = async ({
deployments,
@@ -9,12 +8,9 @@ const deployUniversalProfile: DeployFunction = async ({
const { deploy } = deployments;
const { owner } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('UniversalProfile', {
from: owner,
args: [owner],
- gasPrice,
log: true,
});
};
diff --git a/deploy/002_deploy_key_manager.ts b/deploy/002_deploy_key_manager.ts
index 0f357baab..60b9be419 100644
--- a/deploy/002_deploy_key_manager.ts
+++ b/deploy/002_deploy_key_manager.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
const deployKeyManager: DeployFunction = async ({
deployments,
@@ -11,12 +10,9 @@ const deployKeyManager: DeployFunction = async ({
const UniversalProfile = await deployments.get('UniversalProfile');
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP6KeyManager', {
from: owner,
args: [UniversalProfile.address],
- gasPrice,
log: true,
});
};
diff --git a/deploy/003_deploy_universal_receiver_delegate.ts b/deploy/003_deploy_universal_receiver_delegate.ts
index 2b751b7af..d4b9472cf 100644
--- a/deploy/003_deploy_universal_receiver_delegate.ts
+++ b/deploy/003_deploy_universal_receiver_delegate.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
import { SALT } from './salt';
const deployUniversalReceiverDelegateUPDeterministic: DeployFunction = async ({
@@ -10,11 +9,8 @@ const deployUniversalReceiverDelegateUPDeterministic: DeployFunction = async ({
const { deploy } = deployments;
const { owner: deployer } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP1UniversalReceiverDelegateUP', {
from: deployer,
- gasPrice,
log: true,
deterministicDeployment: SALT,
});
diff --git a/deploy/005_deploy_universal_receiver_delegate_vault.ts b/deploy/005_deploy_universal_receiver_delegate_vault.ts
index 795933b4b..1830d040d 100644
--- a/deploy/005_deploy_universal_receiver_delegate_vault.ts
+++ b/deploy/005_deploy_universal_receiver_delegate_vault.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
import { SALT } from './salt';
const deployUniversalReceiverDelegateVaultDeterministic: DeployFunction = async ({
@@ -10,11 +9,8 @@ const deployUniversalReceiverDelegateVaultDeterministic: DeployFunction = async
const { deploy } = deployments;
const { owner: deployer } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP1UniversalReceiverDelegateVault', {
from: deployer,
- gasPrice,
log: true,
deterministicDeployment: SALT,
});
diff --git a/deploy/006_deploy_base_universal_profile.ts b/deploy/006_deploy_base_universal_profile.ts
index 1064f4c67..d48e5a29a 100644
--- a/deploy/006_deploy_base_universal_profile.ts
+++ b/deploy/006_deploy_base_universal_profile.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
import { SALT } from './salt';
const deployBaseUniversalProfileDeterministic: DeployFunction = async ({
@@ -10,12 +9,9 @@ const deployBaseUniversalProfileDeterministic: DeployFunction = async ({
const { deploy } = deployments;
const { owner: deployer } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('UniversalProfileInit', {
from: deployer,
log: true,
- gasPrice,
deterministicDeployment: SALT,
});
};
diff --git a/deploy/007_deploy_base_key_manager.ts b/deploy/007_deploy_base_key_manager.ts
index 2b2ed835e..f314be008 100644
--- a/deploy/007_deploy_base_key_manager.ts
+++ b/deploy/007_deploy_base_key_manager.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
import { SALT } from './salt';
const deployBaseKeyManagerDeterministic: DeployFunction = async ({
@@ -10,13 +9,10 @@ const deployBaseKeyManagerDeterministic: DeployFunction = async ({
const { deploy } = deployments;
const { owner: deployer } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP6KeyManagerInit', {
from: deployer,
log: true,
gasLimit: 5_000_000,
- gasPrice,
deterministicDeployment: SALT,
});
};
diff --git a/deploy/008_deploy_lsp7_mintable.ts b/deploy/008_deploy_lsp7_mintable.ts
index 6faefd686..a06490aa9 100644
--- a/deploy/008_deploy_lsp7_mintable.ts
+++ b/deploy/008_deploy_lsp7_mintable.ts
@@ -1,7 +1,6 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
-import { LSP4_TOKEN_TYPES } from '../constants';
+import { LSP4_TOKEN_TYPES } from '@lukso/lsp4-contracts/constants';
const deployLSP7Mintable: DeployFunction = async ({
deployments,
@@ -10,12 +9,9 @@ const deployLSP7Mintable: DeployFunction = async ({
const { deploy } = deployments;
const { owner } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP7Mintable', {
from: owner,
args: ['LSP7 Mintable', 'LSP7M', owner, LSP4_TOKEN_TYPES.TOKEN, false],
- gasPrice,
log: true,
});
};
diff --git a/deploy/009_deploy_lsp8_mintable.ts b/deploy/009_deploy_lsp8_mintable.ts
index 7453ae7ac..aca565cbe 100644
--- a/deploy/009_deploy_lsp8_mintable.ts
+++ b/deploy/009_deploy_lsp8_mintable.ts
@@ -1,7 +1,7 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
-import { LSP4_TOKEN_TYPES, LSP8_TOKEN_ID_FORMAT } from '../constants';
+import { LSP4_TOKEN_TYPES } from '@lukso/lsp4-contracts/constants';
+import { LSP8_TOKEN_ID_FORMAT } from '@lukso/lsp8-contracts/constants';
const deployLSP8MintableDeterministic: DeployFunction = async ({
deployments,
@@ -10,12 +10,9 @@ const deployLSP8MintableDeterministic: DeployFunction = async ({
const { deploy } = deployments;
const { owner: deployer } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP8Mintable', {
from: deployer,
args: ['LSP8 Mintable', 'LSP8M', deployer, LSP4_TOKEN_TYPES.NFT, LSP8_TOKEN_ID_FORMAT.NUMBER],
- gasPrice,
log: true,
});
};
diff --git a/deploy/010_deploy_base_lsp7_mintable.ts b/deploy/010_deploy_base_lsp7_mintable.ts
index e6e5a708a..ef7365b31 100644
--- a/deploy/010_deploy_base_lsp7_mintable.ts
+++ b/deploy/010_deploy_base_lsp7_mintable.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
import { SALT } from './salt';
const deployBaseLSP7MintableDeterministic: DeployFunction = async ({
@@ -10,11 +9,8 @@ const deployBaseLSP7MintableDeterministic: DeployFunction = async ({
const { deploy } = deployments;
const { owner: deployer } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP7MintableInit', {
from: deployer,
- gasPrice,
log: true,
deterministicDeployment: SALT,
});
diff --git a/deploy/011_deploy_base_lsp8_mintable.ts b/deploy/011_deploy_base_lsp8_mintable.ts
index 6b2f8915e..d50851af0 100644
--- a/deploy/011_deploy_base_lsp8_mintable.ts
+++ b/deploy/011_deploy_base_lsp8_mintable.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
import { SALT } from './salt';
const deployBaseLSP8Mintable: DeployFunction = async ({
@@ -10,11 +9,8 @@ const deployBaseLSP8Mintable: DeployFunction = async ({
const { deploy } = deployments;
const { owner } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP8MintableInit', {
from: owner,
- gasPrice,
log: true,
deterministicDeployment: SALT,
});
diff --git a/deploy/012_deploy_vault.ts b/deploy/012_deploy_vault.ts
index 55ab6e4d0..6dfecf79f 100644
--- a/deploy/012_deploy_vault.ts
+++ b/deploy/012_deploy_vault.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
const deployVault: DeployFunction = async ({
deployments,
@@ -9,12 +8,9 @@ const deployVault: DeployFunction = async ({
const { deploy } = deployments;
const { owner } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP9Vault', {
from: owner,
args: [owner],
- gasPrice,
log: true,
});
};
diff --git a/deploy/013_deploy_base_vault.ts b/deploy/013_deploy_base_vault.ts
index 9cc49e1b2..7090bd43a 100644
--- a/deploy/013_deploy_base_vault.ts
+++ b/deploy/013_deploy_base_vault.ts
@@ -1,6 +1,5 @@
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { DeployFunction } from 'hardhat-deploy/types';
-import { ethers } from 'hardhat';
import { SALT } from './salt';
const deployBaseVaultDeterministic: DeployFunction = async ({
@@ -10,12 +9,9 @@ const deployBaseVaultDeterministic: DeployFunction = async ({
const { deploy } = deployments;
const { owner: deployer } = await getNamedAccounts();
- const gasPrice = await ethers.provider.getGasPrice();
-
await deploy('LSP9VaultInit', {
from: deployer,
log: true,
- gasPrice,
deterministicDeployment: SALT,
});
};
diff --git a/dodoc/config.ts b/dodoc/config.ts
index bc3f31bac..0d0bec201 100644
--- a/dodoc/config.ts
+++ b/dodoc/config.ts
@@ -1,4 +1,4 @@
-import { ethers } from 'ethers';
+import { keccak256, toUtf8Bytes } from 'ethers';
import { HelperContent } from 'squirrelly/dist/types/containers';
export const dodocConfig = {
@@ -331,9 +331,7 @@ const generateAdditionalMethodInfo = (contract: string, code: string) => {
) {
infoBlock +=
`- Function signature: \`${formatedCode}\`\n` +
- `- Function selector: \`${ethers.utils
- .keccak256(ethers.utils.toUtf8Bytes(formatedCode))
- .substring(0, 10)}\``;
+ `- Function selector: \`${keccak256(toUtf8Bytes(formatedCode)).substring(0, 10)}\``;
}
return infoBlock;
@@ -350,7 +348,7 @@ const generateAdditionalEventInfo = (contract: string, code: string) => {
.toLowerCase()})\n` +
`- Solidity implementation: [\`${contract}.sol\`](${contractLink})\n` +
`- Event signature: \`${formatedCode}\`\n` +
- `- Event topic hash: \`${ethers.utils.keccak256(ethers.utils.toUtf8Bytes(formatedCode))}\``
+ `- Event topic hash: \`${keccak256(toUtf8Bytes(formatedCode))}\``
);
};
@@ -365,9 +363,7 @@ const generateAdditionalErrorInfo = (contract: string, code: string) => {
.toLowerCase()})\n` +
`- Solidity implementation: [\`${contract}.sol\`](${contractLink})\n` +
`- Error signature: \`${formatedCode}\`\n` +
- `- Error hash: \`${ethers.utils
- .keccak256(ethers.utils.toUtf8Bytes(formatedCode))
- .substring(0, 10)}\``
+ `- Error hash: \`${keccak256(toUtf8Bytes(formatedCode)).substring(0, 10)}\``
);
};
diff --git a/hardhat.config.ts b/hardhat.config.ts
index 2e7364929..1a29755de 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -181,7 +181,7 @@ const config: HardhatUserConfig = {
],
// Whether to include the TypeChain factories or not.
// If this is enabled, you need to run the TypeChain files through the TypeScript compiler before shipping to the registry.
- includeFactories: true,
+ // includeFactories: true,
},
paths: {
artifacts: 'artifacts',
@@ -189,7 +189,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
dodoc: dodocConfig,
};
diff --git a/package-lock.json b/package-lock.json
index d11f4da92..3067c0d31 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,6 +7,7 @@
"": {
"name": "@lukso/lsp-smart-contracts",
"version": "0.12.1",
+ "hasInstallScript": true,
"license": "Apache-2.0",
"workspaces": [
"config/*",
@@ -42,24 +43,24 @@
},
"devDependencies": {
"@b00ste/hardhat-dodoc": "^0.3.16",
- "@erc725/erc725.js": "0.17.2",
+ "@erc725/erc725.js": "0.23.0",
"@lukso/eip191-signer.js": "^0.2.2",
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
+ "@nomicfoundation/hardhat-toolbox": "^4.0.0",
"@nomiclabs/hardhat-web3": "^2.0.0",
- "@remix-project/remixd": "^0.6.12",
- "@turbo/gen": "^1.9.7",
- "@typechain/ethers-v5": "^10.2.0",
- "all-contributors-cli": "^6.24.0",
+ "@turbo/gen": "^1.12.3",
+ "@typechain/ethers-v6": "^0.5.1",
+ "@typechain/hardhat": "9.1.0",
+ "all-contributors-cli": "^6.26.1",
"dotenv": "^16.0.3",
"esbuild": "^0.17.15",
"eslint": "^7.32.0",
"eslint-config-custom": "*",
"eth-create2-calculator": "^1.1.5",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
+ "ethers": "^6.11.0",
+ "hardhat": "^2.20.1",
"hardhat-contract-sizer": "^2.8.0",
"hardhat-deploy": "^0.11.25",
- "hardhat-deploy-ethers": "^0.3.0-beta.13",
+ "hardhat-deploy-ethers": "^0.4.1",
"hardhat-gas-reporter": "^1.0.9",
"hardhat-packager": "^1.4.2",
"markdown-table-ts": "^1.0.3",
@@ -71,7 +72,7 @@
"solhint": "^3.6.2",
"ts-node": "^10.2.0",
"turbo": "latest",
- "typechain": "^8.0.0",
+ "typechain": "^8.3.2",
"typescript": "^5.3.3",
"unbuild": "^2.0.0",
"vite-plugin-checker": "^0.5.6",
@@ -106,6 +107,12 @@
"resolved": "https://registry.npmjs.org/@account-abstraction/contracts/-/contracts-0.6.0.tgz",
"integrity": "sha512-8ooRJuR7XzohMDM4MV34I12Ci2bmxfE9+cixakRL7lA4BAwJKQ3ahvd8FbJa9kiwkUPCUNtj+/zxDQWYYalLMQ=="
},
+ "node_modules/@adraffy/ens-normalize": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz",
+ "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==",
+ "dev": true
+ },
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@@ -189,14 +196,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/generator": {
"version": "7.23.6",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
@@ -212,9 +211,9 @@
}
},
"node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.22",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
- "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz",
+ "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -235,12 +234,12 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
+ "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": {
+ "yallist": "^3.0.2"
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
@@ -428,14 +427,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/runtime": {
"version": "7.23.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
@@ -570,15 +561,16 @@
}
},
"node_modules/@erc725/erc725.js": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@erc725/erc725.js/-/erc725.js-0.17.2.tgz",
- "integrity": "sha512-PwlTnSY0VhhcovRsne4vDevYYEeiGxwRhueR9C457u9d9Cg7evPkoFb+hmCUrT5xuOdjAbqeAaV1V8QXAfhTuA==",
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/@erc725/erc725.js/-/erc725.js-0.23.0.tgz",
+ "integrity": "sha512-v2qPnH7IXSh4td3br+LNXdhfiFrtx/AOBnNbFZKZVHQdVdapKAtZVmrKV1svTlztxxRgQQ24wLgEMkxr9GiguA==",
"dev": true,
"dependencies": {
+ "add": "^2.0.6",
"ethereumjs-util": "^7.1.5",
- "web3-eth-abi": "^1.8.2",
- "web3-providers-http": "^1.8.0",
- "web3-utils": "^1.8.2"
+ "web3-eth-abi": "^1.10.0",
+ "web3-providers-http": "^1.10.0",
+ "web3-utils": "^1.10.0"
}
},
"node_modules/@erc725/smart-contracts": {
@@ -1100,6 +1092,30 @@
"node": ">=14"
}
},
+ "node_modules/@ethereumjs/util/node_modules/@noble/curves": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz",
+ "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==",
+ "dev": true,
+ "dependencies": {
+ "@noble/hashes": "1.3.3"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@ethereumjs/util/node_modules/@noble/hashes": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz",
+ "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz",
@@ -1415,6 +1431,12 @@
"scrypt-js": "3.0.1"
}
},
+ "node_modules/@ethersproject/json-wallets/node_modules/aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==",
+ "dev": true
+ },
"node_modules/@ethersproject/keccak256": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
@@ -1543,6 +1565,27 @@
"ws": "7.4.6"
}
},
+ "node_modules/@ethersproject/providers/node_modules/ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@ethersproject/random": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
@@ -1843,9 +1886,9 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz",
+ "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==",
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -2042,21 +2085,21 @@
"integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q=="
},
"node_modules/@noble/curves": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz",
- "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz",
+ "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==",
"dev": true,
"dependencies": {
- "@noble/hashes": "1.3.3"
+ "@noble/hashes": "1.3.2"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@noble/hashes": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz",
- "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz",
+ "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==",
"dev": true,
"engines": {
"node": ">= 16"
@@ -2108,22 +2151,89 @@
"node": ">= 8"
}
},
- "node_modules/@nomicfoundation/ethereumjs-verkle": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-verkle/-/ethereumjs-verkle-0.0.2.tgz",
- "integrity": "sha512-bjnfZElpYGK/XuuVRmLS3yDvr+cDs85D9oonZ0YUa5A3lgFgokWMp76zXrxX2jVQ0BfHaw12y860n1+iOi6yFQ==",
+ "node_modules/@nomicfoundation/ethereumjs-block": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.4.tgz",
+ "integrity": "sha512-AcyacJ9eX/uPEvqsPiB+WO1ymE+kyH48qGGiGV+YTojdtas8itUTW5dehDSOXEEItWGbbzEJ4PRqnQZlWaPvDw==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-common": "4.0.4",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.4",
+ "@nomicfoundation/ethereumjs-trie": "6.0.4",
+ "@nomicfoundation/ethereumjs-tx": "5.0.4",
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
+ "ethereum-cryptography": "0.1.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-blockchain": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.4.tgz",
+ "integrity": "sha512-jYsd/kwzbmpnxx86tXsYV8wZ5xGvFL+7/P0c6OlzpClHsbFzeF41KrYA9scON8Rg6bZu3ZTv6JOAgj3t7USUfg==",
"dev": true,
"dependencies": {
+ "@nomicfoundation/ethereumjs-block": "5.0.4",
+ "@nomicfoundation/ethereumjs-common": "4.0.4",
+ "@nomicfoundation/ethereumjs-ethash": "3.0.4",
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
+ "@nomicfoundation/ethereumjs-trie": "6.0.4",
+ "@nomicfoundation/ethereumjs-tx": "5.0.4",
"@nomicfoundation/ethereumjs-util": "9.0.4",
- "lru-cache": "^10.0.0",
- "rust-verkle-wasm": "^0.0.1"
+ "debug": "^4.3.3",
+ "ethereum-cryptography": "0.1.3",
+ "lru-cache": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-common": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz",
+ "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-util": "9.0.4"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-ethash": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.4.tgz",
+ "integrity": "sha512-xvIrwIMl9sSaiYKRem68+O7vYdj7Q2XWv5P7JXiIkn83918QzWHvqbswTRsH7+r6X1UEvdsURRnZbvZszEjAaQ==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-block": "5.0.4",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.4",
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
+ "bigint-crypto-utils": "^3.2.2",
+ "ethereum-cryptography": "0.1.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-evm": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.4.tgz",
+ "integrity": "sha512-lTyZZi1KpeMHzaO6cSVisR2tjiTTedjo7PcmhI/+GNFo9BmyY6QYzGeSti0sFttmjbEMioHgXxl5yrLNRg6+1w==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-common": "4.0.4",
+ "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
+ "@nomicfoundation/ethereumjs-tx": "5.0.4",
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
+ "@types/debug": "^4.1.9",
+ "debug": "^4.3.3",
+ "ethereum-cryptography": "0.1.3",
+ "rustbn-wasm": "^0.2.0"
},
"engines": {
"node": ">=18"
}
},
- "node_modules/@nomicfoundation/ethereumjs-verkle/node_modules/@nomicfoundation/ethereumjs-rlp": {
+ "node_modules/@nomicfoundation/ethereumjs-rlp": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz",
"integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==",
@@ -2135,96 +2245,221 @@
"node": ">=18"
}
},
- "node_modules/@nomicfoundation/ethereumjs-verkle/node_modules/@nomicfoundation/ethereumjs-util": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz",
- "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==",
+ "node_modules/@nomicfoundation/ethereumjs-statemanager": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.4.tgz",
+ "integrity": "sha512-HPDjeFrxw6llEi+BzqXkZ+KkvFnTOPczuHBtk21hRlDiuKuZz32dPzlhpRsDBGV1b5JTmRDUVqCS1lp3Gghw4Q==",
"dev": true,
"dependencies": {
+ "@nomicfoundation/ethereumjs-common": "4.0.4",
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "ethereum-cryptography": "0.1.3"
- },
- "engines": {
- "node": ">=18"
+ "@nomicfoundation/ethereumjs-trie": "6.0.4",
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
+ "debug": "^4.3.3",
+ "ethereum-cryptography": "0.1.3",
+ "js-sdsl": "^4.1.4",
+ "lru-cache": "^10.0.0"
},
"peerDependencies": {
- "c-kzg": "^2.1.2"
+ "@nomicfoundation/ethereumjs-verkle": "0.0.2"
},
"peerDependenciesMeta": {
- "c-kzg": {
+ "@nomicfoundation/ethereumjs-verkle": {
"optional": true
}
}
},
- "node_modules/@nomicfoundation/ethereumjs-verkle/node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "node_modules/@nomicfoundation/ethereumjs-trie": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.4.tgz",
+ "integrity": "sha512-3nSwQiFMvr2VFe/aZUyinuohYvtytUqZCUCvIWcPJ/BwJH6oQdZRB42aNFBJ/8nAh2s3OcroWpBLskzW01mFKA==",
"dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-rlp": "5.0.4",
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
+ "@types/readable-stream": "^2.3.13",
+ "ethereum-cryptography": "0.1.3",
+ "lru-cache": "^10.0.0",
+ "readable-stream": "^3.6.0"
+ },
"engines": {
- "node": "14 || >=16.14"
+ "node": ">=18"
}
},
- "node_modules/@nomicfoundation/hardhat-chai-matchers": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz",
- "integrity": "sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==",
+ "node_modules/@nomicfoundation/ethereumjs-tx": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz",
+ "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==",
"dev": true,
- "peer": true,
"dependencies": {
- "@ethersproject/abi": "^5.1.2",
- "@types/chai-as-promised": "^7.1.3",
- "chai-as-promised": "^7.1.1",
- "deep-eql": "^4.0.1",
- "ordinal": "^1.0.3"
+ "@nomicfoundation/ethereumjs-common": "4.0.4",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.4",
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
+ "ethereum-cryptography": "0.1.3"
+ },
+ "engines": {
+ "node": ">=18"
},
"peerDependencies": {
- "@nomiclabs/hardhat-ethers": "^2.0.0",
- "chai": "^4.2.0",
- "ethers": "^5.0.0",
- "hardhat": "^2.9.4"
+ "c-kzg": "^2.1.2"
+ },
+ "peerDependenciesMeta": {
+ "c-kzg": {
+ "optional": true
+ }
}
},
- "node_modules/@nomicfoundation/hardhat-network-helpers": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz",
- "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==",
+ "node_modules/@nomicfoundation/ethereumjs-util": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz",
+ "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==",
"dev": true,
- "peer": true,
"dependencies": {
- "ethereumjs-util": "^7.1.4"
+ "@nomicfoundation/ethereumjs-rlp": "5.0.4",
+ "ethereum-cryptography": "0.1.3"
+ },
+ "engines": {
+ "node": ">=18"
},
"peerDependencies": {
- "hardhat": "^2.9.5"
+ "c-kzg": "^2.1.2"
+ },
+ "peerDependenciesMeta": {
+ "c-kzg": {
+ "optional": true
+ }
}
},
- "node_modules/@nomicfoundation/hardhat-toolbox": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.2.tgz",
- "integrity": "sha512-vnN1AzxbvpSx9pfdRHbUzTRIXpMLPXnUlkW855VaDk6N1pwRaQ2gNzEmFAABk4lWf11E00PKwFd/q27HuwYrYg==",
+ "node_modules/@nomicfoundation/ethereumjs-verkle": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-verkle/-/ethereumjs-verkle-0.0.2.tgz",
+ "integrity": "sha512-bjnfZElpYGK/XuuVRmLS3yDvr+cDs85D9oonZ0YUa5A3lgFgokWMp76zXrxX2jVQ0BfHaw12y860n1+iOi6yFQ==",
"dev": true,
- "peerDependencies": {
- "@ethersproject/abi": "^5.4.7",
- "@ethersproject/providers": "^5.4.7",
- "@nomicfoundation/hardhat-chai-matchers": "^1.0.0",
- "@nomicfoundation/hardhat-network-helpers": "^1.0.0",
- "@nomiclabs/hardhat-ethers": "^2.0.0",
- "@nomiclabs/hardhat-etherscan": "^3.0.0",
- "@typechain/ethers-v5": "^10.1.0",
- "@typechain/hardhat": "^6.1.2",
- "@types/chai": "^4.2.0",
- "@types/mocha": ">=9.1.0",
- "@types/node": ">=12.0.0",
- "chai": "^4.2.0",
- "ethers": "^5.4.7",
- "hardhat": "^2.11.0",
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-rlp": "5.0.4",
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
+ "lru-cache": "^10.0.0",
+ "rust-verkle-wasm": "^0.0.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@nomicfoundation/ethereumjs-vm": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.4.tgz",
+ "integrity": "sha512-gsA4IhmtWHI4BofKy3kio9W+dqZQs5Ji5mLjLYxHCkat+JQBUt5szjRKra2F9nGDJ2XcI/wWb0YWUFNgln4zRQ==",
+ "dev": true,
+ "dependencies": {
+ "@nomicfoundation/ethereumjs-block": "5.0.4",
+ "@nomicfoundation/ethereumjs-blockchain": "7.0.4",
+ "@nomicfoundation/ethereumjs-common": "4.0.4",
+ "@nomicfoundation/ethereumjs-evm": "2.0.4",
+ "@nomicfoundation/ethereumjs-rlp": "5.0.4",
+ "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
+ "@nomicfoundation/ethereumjs-trie": "6.0.4",
+ "@nomicfoundation/ethereumjs-tx": "5.0.4",
+ "@nomicfoundation/ethereumjs-util": "9.0.4",
+ "debug": "^4.3.3",
+ "ethereum-cryptography": "0.1.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-chai-matchers": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz",
+ "integrity": "sha512-Te1Uyo9oJcTCF0Jy9dztaLpshmlpjLf2yPtWXlXuLjMt3RRSmJLm/+rKVTW6gfadAEs12U/it6D0ZRnnRGiICQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/chai-as-promised": "^7.1.3",
+ "chai-as-promised": "^7.1.1",
+ "deep-eql": "^4.0.1",
+ "ordinal": "^1.0.3"
+ },
+ "peerDependencies": {
+ "@nomicfoundation/hardhat-ethers": "^3.0.0",
+ "chai": "^4.2.0",
+ "ethers": "^6.1.0",
+ "hardhat": "^2.9.4"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-ethers": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz",
+ "integrity": "sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "lodash.isequal": "^4.5.0"
+ },
+ "peerDependencies": {
+ "ethers": "^6.1.0",
+ "hardhat": "^2.0.0"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-network-helpers": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz",
+ "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ethereumjs-util": "^7.1.4"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.9.5"
+ }
+ },
+ "node_modules/@nomicfoundation/hardhat-toolbox": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-4.0.0.tgz",
+ "integrity": "sha512-jhcWHp0aHaL0aDYj8IJl80v4SZXWMS1A2XxXa1CA6pBiFfJKuZinCkO6wb+POAt0LIfXB3gA3AgdcOccrcwBwA==",
+ "dev": true,
+ "peerDependencies": {
+ "@nomicfoundation/hardhat-chai-matchers": "^2.0.0",
+ "@nomicfoundation/hardhat-ethers": "^3.0.0",
+ "@nomicfoundation/hardhat-network-helpers": "^1.0.0",
+ "@nomicfoundation/hardhat-verify": "^2.0.0",
+ "@typechain/ethers-v6": "^0.5.0",
+ "@typechain/hardhat": "9.1.0",
+ "@types/chai": "^4.2.0",
+ "@types/mocha": ">=9.1.0",
+ "@types/node": ">=16.0.0",
+ "chai": "^4.2.0",
+ "ethers": "^6.4.0",
+ "hardhat": "^2.11.0",
"hardhat-gas-reporter": "^1.0.8",
"solidity-coverage": "^0.8.1",
"ts-node": ">=8.0.0",
- "typechain": "^8.1.0",
+ "typechain": "^8.3.0",
"typescript": ">=4.5.0"
}
},
+ "node_modules/@nomicfoundation/hardhat-verify": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.4.tgz",
+ "integrity": "sha512-B8ZjhOrmbbRWqJi65jvQblzjsfYktjqj2vmOm+oc2Vu8drZbT2cjeSCRHZKbS7lOtfW78aJZSFvw+zRLCiABJA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@ethersproject/abi": "^5.1.2",
+ "@ethersproject/address": "^5.0.2",
+ "cbor": "^8.1.0",
+ "chalk": "^2.4.2",
+ "debug": "^4.1.1",
+ "lodash.clonedeep": "^4.5.0",
+ "semver": "^6.3.0",
+ "table": "^6.8.0",
+ "undici": "^5.14.0"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.0.4"
+ }
+ },
"node_modules/@nomicfoundation/solidity-analyzer": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz",
@@ -2406,50 +2641,6 @@
"node": ">= 10"
}
},
- "node_modules/@nomiclabs/hardhat-ethers": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz",
- "integrity": "sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==",
- "dev": true,
- "peer": true,
- "peerDependencies": {
- "ethers": "^5.0.0",
- "hardhat": "^2.0.0"
- }
- },
- "node_modules/@nomiclabs/hardhat-etherscan": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.8.tgz",
- "integrity": "sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==",
- "deprecated": "The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@ethersproject/abi": "^5.1.2",
- "@ethersproject/address": "^5.0.2",
- "cbor": "^8.1.0",
- "chalk": "^2.4.2",
- "debug": "^4.1.1",
- "fs-extra": "^7.0.1",
- "lodash": "^4.17.11",
- "semver": "^6.3.0",
- "table": "^6.8.0",
- "undici": "^5.14.0"
- },
- "peerDependencies": {
- "hardhat": "^2.0.4"
- }
- },
- "node_modules/@nomiclabs/hardhat-etherscan/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "peer": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@nomiclabs/hardhat-web3": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz",
@@ -2473,101 +2664,6 @@
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz",
"integrity": "sha512-f7L1//4sLlflAN7fVzJLoRedrf5Na3Oal5PZfIq55NFcVZ90EpV1q5xOvL4lFvg3MNICSDr2hH0JUBxwlxcoPg=="
},
- "node_modules/@remix-project/remixd": {
- "version": "0.6.26",
- "resolved": "https://registry.npmjs.org/@remix-project/remixd/-/remixd-0.6.26.tgz",
- "integrity": "sha512-RYwV/T5lgF8rxQB3H8ZSwINlXxTQ7xDdWpNNrVsj2KCeqsj61X/4KaoAa5SUrnDulXwgAGWc1walLWqaIQDqnQ==",
- "dev": true,
- "dependencies": {
- "@remixproject/plugin": "0.3.33",
- "@remixproject/plugin-api": "0.3.33",
- "@remixproject/plugin-utils": "0.3.33",
- "@remixproject/plugin-ws": "0.3.33",
- "axios": "1.6.0",
- "chokidar": "^2.1.8",
- "commander": "^9.4.1",
- "fs-extra": "^3.0.1",
- "isbinaryfile": "^3.0.2",
- "latest-version": "^5.1.0",
- "semver": "^6.3.0",
- "ws": "^7.3.0"
- },
- "bin": {
- "remixd": "src/bin/remixd.js"
- }
- },
- "node_modules/@remix-project/remixd/node_modules/fs-extra": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
- "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^3.0.0",
- "universalify": "^0.1.0"
- }
- },
- "node_modules/@remix-project/remixd/node_modules/jsonfile": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
- "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/@remix-project/remixd/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@remixproject/plugin": {
- "version": "0.3.33",
- "resolved": "https://registry.npmjs.org/@remixproject/plugin/-/plugin-0.3.33.tgz",
- "integrity": "sha512-ia6LevsWYPkcRwOBl3umA2fPCgYt2TmB437Pafs9BE6fD9judEvlvEqXjBy9GLBsZzZWSiyYenOnW8HIiwqfMA==",
- "dev": true,
- "dependencies": {
- "@remixproject/plugin-api": "0.3.33",
- "@remixproject/plugin-utils": "0.3.33",
- "events": "3.2.0"
- }
- },
- "node_modules/@remixproject/plugin-api": {
- "version": "0.3.33",
- "resolved": "https://registry.npmjs.org/@remixproject/plugin-api/-/plugin-api-0.3.33.tgz",
- "integrity": "sha512-fBEbRr6/mgQdfNdRqYQL3yewsPfTxV41F509CngbD6YdY5YKBihJhfGFHbd2rKSyXOgBiHIbe0SsV3OXpFdWnw==",
- "dev": true,
- "dependencies": {
- "@remixproject/plugin-utils": "0.3.33"
- }
- },
- "node_modules/@remixproject/plugin-utils": {
- "version": "0.3.33",
- "resolved": "https://registry.npmjs.org/@remixproject/plugin-utils/-/plugin-utils-0.3.33.tgz",
- "integrity": "sha512-cAo21ot4/G5BkN8ypDwg8MMCrEmLdXwMd3lQZUeB5enPC3KxmzQz71+OgEYl718Hwy+GtHaLq17FEXCHC5YV9w==",
- "dev": true,
- "dependencies": {
- "tslib": "2.0.1"
- }
- },
- "node_modules/@remixproject/plugin-ws": {
- "version": "0.3.33",
- "resolved": "https://registry.npmjs.org/@remixproject/plugin-ws/-/plugin-ws-0.3.33.tgz",
- "integrity": "sha512-Zkp8MK8jxnNm3uruu0dF8vqeh90JsLXttJP4LZF0HaStRRK4d2XG6CgE5mBiC2J4uTEwGP26H/vmqi+POBPTEg==",
- "dev": true,
- "dependencies": {
- "@remixproject/plugin": "0.3.33",
- "@remixproject/plugin-api": "0.3.33",
- "@remixproject/plugin-utils": "0.3.33"
- },
- "peerDependencies": {
- "ws": "^7.3.1"
- }
- },
"node_modules/@rollup/plugin-alias": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz",
@@ -2965,6 +3061,30 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/@scure/bip32/node_modules/@noble/curves": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz",
+ "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==",
+ "dev": true,
+ "dependencies": {
+ "@noble/hashes": "1.3.3"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip32/node_modules/@noble/hashes": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz",
+ "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/@scure/bip39": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz",
@@ -3117,12 +3237,14 @@
"dev": true
},
"node_modules/@sindresorhus/is": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
- "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
- "dev": true,
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"engines": {
- "node": ">=6"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
}
},
"node_modules/@solidity-parser/parser": {
@@ -3135,15 +3257,14 @@
}
},
"node_modules/@szmarczak/http-timer": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
- "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
- "dev": true,
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
"dependencies": {
- "defer-to-connect": "^1.0.1"
+ "defer-to-connect": "^2.0.1"
},
"engines": {
- "node": ">=6"
+ "node": ">=14.16"
}
},
"node_modules/@tootallnate/quickjs-emscripten": {
@@ -3156,6 +3277,7 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.4.tgz",
"integrity": "sha512-D3SN0iw3sMWUXjWAedP6RJtopo9qQXYi80inzbtcsoso4VhxFxCwFvCErCl4b27AEJ9pkAtgnxEFRaSKdMmi1Q==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
"dependencies": {
"ethereum-cryptography": "1.1.2",
"keccak": "3.0.2",
@@ -3169,6 +3291,7 @@
"version": "2.1.15",
"resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-2.1.15.tgz",
"integrity": "sha512-I5cSS+5LygA3WFzru9aC5+yDXVowEEbLCx0ckl/RqJ2/SCiYXkzYlR5/DjjDJuCtYhivhrn2RP9AheeFlRF+qw==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
"dependencies": {
"@ethereumjs/common": "^2.4.0",
"@ethereumjs/tx": "^3.3.0",
@@ -3247,100 +3370,17 @@
"@scure/base": "~1.1.0"
}
},
- "node_modules/@truffle/hdwallet-provider/node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/@szmarczak/http-timer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
- "dependencies": {
- "defer-to-connect": "^2.0.1"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
"node_modules/@truffle/hdwallet-provider/node_modules/@types/node": {
"version": "12.20.55",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
"integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
},
- "node_modules/@truffle/hdwallet-provider/node_modules/cacheable-request": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
- "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
+ "node_modules/@truffle/hdwallet-provider/node_modules/cross-fetch": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
"dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^6.0.1",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/cacheable-request/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/cacheable-request/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/cross-fetch": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
- "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
- "dependencies": {
- "node-fetch": "^2.6.12"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "dependencies": {
- "mimic-response": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
- "engines": {
- "node": ">=10"
+ "node-fetch": "^2.6.12"
}
},
"node_modules/@truffle/hdwallet-provider/node_modules/eth-lib": {
@@ -3369,92 +3409,6 @@
"@scure/bip39": "1.1.0"
}
},
- "node_modules/@truffle/hdwallet-provider/node_modules/got": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
- "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
- "dependencies": {
- "@sindresorhus/is": "^4.6.0",
- "@szmarczak/http-timer": "^5.0.1",
- "@types/cacheable-request": "^6.0.2",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^6.0.4",
- "cacheable-request": "^7.0.2",
- "decompress-response": "^6.0.0",
- "form-data-encoder": "1.7.1",
- "get-stream": "^6.0.1",
- "http2-wrapper": "^2.1.10",
- "lowercase-keys": "^3.0.0",
- "p-cancelable": "^3.0.0",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/normalize-url": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
- "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/p-cancelable": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
- "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
- "engines": {
- "node": ">=12.20"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/responselike": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
- "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
- "dependencies": {
- "lowercase-keys": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@truffle/hdwallet-provider/node_modules/responselike/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@truffle/hdwallet-provider/node_modules/uuid": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
@@ -3905,50 +3859,6 @@
"gen": "dist/cli.js"
}
},
- "node_modules/@turbo/gen/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@turbo/gen/node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@turbo/gen/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/@turbo/gen/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
"node_modules/@turbo/workspaces": {
"version": "1.12.4",
"resolved": "https://registry.npmjs.org/@turbo/workspaces/-/workspaces-1.12.4.tgz",
@@ -3972,82 +3882,67 @@
"workspaces": "dist/cli.js"
}
},
- "node_modules/@turbo/workspaces/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@turbo/workspaces/node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "node_modules/@turbo/workspaces/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=10"
}
},
- "node_modules/@turbo/workspaces/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "node_modules/@turbo/workspaces/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
"dependencies": {
- "universalify": "^2.0.0"
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
},
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/@turbo/workspaces/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=10"
}
},
- "node_modules/@typechain/ethers-v5": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz",
- "integrity": "sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A==",
+ "node_modules/@turbo/workspaces/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/@typechain/ethers-v6": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz",
+ "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==",
"dev": true,
"dependencies": {
"lodash": "^4.17.15",
"ts-essentials": "^7.0.1"
},
"peerDependencies": {
- "@ethersproject/abi": "^5.0.0",
- "@ethersproject/providers": "^5.0.0",
- "ethers": "^5.1.3",
- "typechain": "^8.1.1",
- "typescript": ">=4.3.0"
+ "ethers": "6.x",
+ "typechain": "^8.3.2",
+ "typescript": ">=4.7.0"
}
},
"node_modules/@typechain/hardhat": {
- "version": "6.1.6",
- "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-6.1.6.tgz",
- "integrity": "sha512-BiVnegSs+ZHVymyidtK472syodx1sXYlYJJixZfRstHVGYTi8V1O7QG4nsjyb0PC/LORcq7sfBUcHto1y6UgJA==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz",
+ "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==",
"dev": true,
"dependencies": {
"fs-extra": "^9.1.0"
},
"peerDependencies": {
- "@ethersproject/abi": "^5.4.7",
- "@ethersproject/providers": "^5.4.7",
- "@typechain/ethers-v5": "^10.2.1",
- "ethers": "^5.4.7",
+ "@typechain/ethers-v6": "^0.5.1",
+ "ethers": "^6.1.0",
"hardhat": "^2.9.9",
- "typechain": "^8.1.1"
+ "typechain": "^8.3.2"
}
},
"node_modules/@typechain/hardhat/node_modules/fs-extra": {
@@ -4065,27 +3960,6 @@
"node": ">=10"
}
},
- "node_modules/@typechain/hardhat/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/@typechain/hardhat/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
"node_modules/@types/bignumber.js": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz",
@@ -4116,9 +3990,9 @@
}
},
"node_modules/@types/chai": {
- "version": "4.3.11",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz",
- "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==",
+ "version": "4.3.12",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz",
+ "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==",
"dev": true,
"peer": true
},
@@ -4263,9 +4137,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "20.11.19",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
- "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==",
+ "version": "20.11.21",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.21.tgz",
+ "integrity": "sha512-/ySDLGscFPNasfqStUuWWPfL78jompfIoVzLJPVVAHBh6rpG68+pI2Gk+fNLeI8/f1yPYL4s46EleVIc20F1Ow==",
"dependencies": {
"undici-types": "~5.26.4"
}
@@ -4285,9 +4159,9 @@
"dev": true
},
"node_modules/@types/qs": {
- "version": "6.9.11",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
- "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==",
+ "version": "6.9.12",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz",
+ "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==",
"dev": true
},
"node_modules/@types/readable-stream": {
@@ -4329,9 +4203,9 @@
}
},
"node_modules/@types/semver": {
- "version": "7.5.7",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz",
- "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg=="
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
},
"node_modules/@types/through": {
"version": "0.0.33",
@@ -4412,23 +4286,53 @@
"node": ">= 4"
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
- "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": {
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
+ "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0"
@@ -4547,6 +4451,36 @@
"node": ">= 4"
}
},
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/@typescript-eslint/utils": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
@@ -4571,6 +4505,36 @@
"eslint": "^7.0.0 || ^8.0.0"
}
},
+ "node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/@typescript-eslint/visitor-keys": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
@@ -4658,6 +4622,12 @@
"node": ">=0.4.0"
}
},
+ "node_modules/add": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/add/-/add-2.0.6.tgz",
+ "integrity": "sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q==",
+ "dev": true
+ },
"node_modules/adm-zip": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
@@ -4668,9 +4638,9 @@
}
},
"node_modules/aes-js": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
- "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==",
+ "version": "4.0.0-beta.5",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz",
+ "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==",
"dev": true
},
"node_modules/agent-base": {
@@ -4942,25 +4912,16 @@
"dev": true
},
"node_modules/anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "dev": true,
- "dependencies": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- }
- },
- "node_modules/anymatch/node_modules/normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
"dependencies": {
- "remove-trailing-separator": "^1.0.1"
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 8"
}
},
"node_modules/arg": {
@@ -4975,33 +4936,6 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
- "node_modules/arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/array-back": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
@@ -5049,15 +4983,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/arraybuffer.prototype.slice": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
@@ -5112,15 +5037,6 @@
"node": "*"
}
},
- "node_modules/assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/ast-parents": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz",
@@ -5153,18 +5069,6 @@
"integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
"dev": true
},
- "node_modules/async-each": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz",
- "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ]
- },
"node_modules/async-eventemitter": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz",
@@ -5208,18 +5112,6 @@
"node": ">= 4.0.0"
}
},
- "node_modules/atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "dev": true,
- "bin": {
- "atob": "bin/atob.js"
- },
- "engines": {
- "node": ">= 4.5.0"
- }
- },
"node_modules/autoprefixer": {
"version": "10.4.17",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz",
@@ -5258,9 +5150,12 @@
}
},
"node_modules/available-typed-arrays": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
- "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -5282,14 +5177,12 @@
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
},
"node_modules/axios": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz",
- "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==",
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"dev": true,
"dependencies": {
- "follow-redirects": "^1.15.0",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
+ "follow-redirects": "^1.14.0"
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
@@ -5305,14 +5198,6 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
- "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
@@ -5352,24 +5237,6 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
- "node_modules/base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "dev": true,
- "dependencies": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/base-x": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
@@ -5378,18 +5245,6 @@
"safe-buffer": "^5.0.1"
}
},
- "node_modules/base/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -5410,9 +5265,9 @@
]
},
"node_modules/basic-ftp": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz",
- "integrity": "sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
+ "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
"dev": true,
"engines": {
"node": ">=10.0.0"
@@ -5455,22 +5310,12 @@
}
},
"node_modules/binary-extensions": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
- "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "file-uri-to-path": "1.0.0"
+ "node": ">=8"
}
},
"node_modules/bl": {
@@ -5484,30 +5329,6 @@
"readable-stream": "^3.4.0"
}
},
- "node_modules/bl/node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
"node_modules/blakejs": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
@@ -5680,24 +5501,14 @@
}
},
"node_modules/braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
+ "fill-range": "^7.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
"node_modules/brorand": {
@@ -5784,28 +5595,29 @@
"node": ">= 0.4.0"
}
},
- "node_modules/buffer-alloc": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
- "dev": true,
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"dependencies": {
- "buffer-alloc-unsafe": "^1.1.0",
- "buffer-fill": "^1.0.0"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
}
},
- "node_modules/buffer-alloc-unsafe": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
- "dev": true
- },
- "node_modules/buffer-fill": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
- "dev": true
- },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -5855,32 +5667,45 @@
"semver": "^7.0.0"
}
},
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "node_modules/builtins/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">=10"
}
},
- "node_modules/cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "node_modules/builtins/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
"dependencies": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ }
+ },
+ "node_modules/builtins/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "engines": {
+ "node": ">= 0.8"
}
},
"node_modules/cacheable-lookup": {
@@ -5892,18 +5717,17 @@
}
},
"node_modules/cacheable-request": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
- "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
- "dev": true,
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
"dependencies": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
"http-cache-semantics": "^4.0.0",
- "keyv": "^3.0.0",
+ "keyv": "^4.0.0",
"lowercase-keys": "^2.0.0",
- "normalize-url": "^4.1.0",
- "responselike": "^1.0.2"
+ "normalize-url": "^6.0.1",
+ "responselike": "^2.0.0"
},
"engines": {
"node": ">=8"
@@ -5913,7 +5737,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dev": true,
"dependencies": {
"pump": "^3.0.0"
},
@@ -5924,26 +5747,10 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/cacheable-request/node_modules/json-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==",
- "dev": true
- },
- "node_modules/cacheable-request/node_modules/keyv": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
- "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
- "dev": true,
- "dependencies": {
- "json-buffer": "3.0.0"
- }
- },
"node_modules/cacheable-request/node_modules/lowercase-keys": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -6009,9 +5816,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001588",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz",
- "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==",
+ "version": "1.0.30001591",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz",
+ "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==",
"funding": [
{
"type": "opencollective",
@@ -6153,26 +5960,27 @@
}
},
"node_modules/chokidar": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
- "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
"dependencies": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.1"
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
},
"optionalDependencies": {
- "fsevents": "^1.2.7"
+ "fsevents": "~2.3.2"
}
},
"node_modules/chownr": {
@@ -6203,29 +6011,6 @@
"npm": ">=3.0.0"
}
},
- "node_modules/cids/node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
"node_modules/cids/node_modules/multicodec": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
@@ -6259,46 +6044,6 @@
"resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
"integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw=="
},
- "node_modules/class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "dev": true,
- "dependencies": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-descriptor": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
- "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
- "dev": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
@@ -6446,19 +6191,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
- "dev": true,
- "dependencies": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -6553,12 +6285,12 @@
}
},
"node_modules/commander": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
"engines": {
- "node": "^12.20.0 || >=14"
+ "node": ">=14"
}
},
"node_modules/commondir": {
@@ -6567,15 +6299,6 @@
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"dev": true
},
- "node_modules/component-emitter": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
- "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -6699,15 +6422,6 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
- "node_modules/copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/core-js-compat": {
"version": "3.36.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz",
@@ -6940,13 +6654,13 @@
}
},
"node_modules/cssnano": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz",
- "integrity": "sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==",
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.5.tgz",
+ "integrity": "sha512-tpTp/ukgrElwu3ESFY4IvWnGn8eTt8cJhC2aAbtA3lvUlxp6t6UPv8YCLjNnEGiFreT1O0LiOM1U3QyTBVFl2A==",
"dev": true,
"dependencies": {
- "cssnano-preset-default": "^6.0.3",
- "lilconfig": "^3.0.0"
+ "cssnano-preset-default": "^6.0.5",
+ "lilconfig": "^3.1.1"
},
"engines": {
"node": "^14 || ^16 || >=18.0"
@@ -6960,25 +6674,25 @@
}
},
"node_modules/cssnano-preset-default": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz",
- "integrity": "sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==",
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.5.tgz",
+ "integrity": "sha512-M+qRDEr5QZrfNl0B2ySdbTLGyNb8kBcSjuwR7WBamYBOEREH9t2efnB/nblekqhdGLZdkf4oZNetykG2JWRdZQ==",
"dev": true,
"dependencies": {
"css-declaration-sorter": "^7.1.1",
"cssnano-utils": "^4.0.1",
"postcss-calc": "^9.0.1",
- "postcss-colormin": "^6.0.2",
- "postcss-convert-values": "^6.0.2",
+ "postcss-colormin": "^6.0.3",
+ "postcss-convert-values": "^6.0.4",
"postcss-discard-comments": "^6.0.1",
- "postcss-discard-duplicates": "^6.0.1",
- "postcss-discard-empty": "^6.0.1",
+ "postcss-discard-duplicates": "^6.0.2",
+ "postcss-discard-empty": "^6.0.2",
"postcss-discard-overridden": "^6.0.1",
- "postcss-merge-longhand": "^6.0.2",
- "postcss-merge-rules": "^6.0.3",
- "postcss-minify-font-values": "^6.0.1",
- "postcss-minify-gradients": "^6.0.1",
- "postcss-minify-params": "^6.0.2",
+ "postcss-merge-longhand": "^6.0.3",
+ "postcss-merge-rules": "^6.0.4",
+ "postcss-minify-font-values": "^6.0.2",
+ "postcss-minify-gradients": "^6.0.2",
+ "postcss-minify-params": "^6.0.3",
"postcss-minify-selectors": "^6.0.2",
"postcss-normalize-charset": "^6.0.1",
"postcss-normalize-display-values": "^6.0.1",
@@ -6986,11 +6700,11 @@
"postcss-normalize-repeat-style": "^6.0.1",
"postcss-normalize-string": "^6.0.1",
"postcss-normalize-timing-functions": "^6.0.1",
- "postcss-normalize-unicode": "^6.0.2",
+ "postcss-normalize-unicode": "^6.0.3",
"postcss-normalize-url": "^6.0.1",
"postcss-normalize-whitespace": "^6.0.1",
"postcss-ordered-values": "^6.0.1",
- "postcss-reduce-initial": "^6.0.2",
+ "postcss-reduce-initial": "^6.0.3",
"postcss-reduce-transforms": "^6.0.1",
"postcss-svgo": "^6.0.2",
"postcss-unique-selectors": "^6.0.2"
@@ -7117,14 +6831,28 @@
}
},
"node_modules/decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"dependencies": {
- "mimic-response": "^1.0.0"
+ "mimic-response": "^3.1.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decompress-response/node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/deep-eql": {
@@ -7176,10 +6904,12 @@
}
},
"node_modules/defer-to-connect": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
- "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
- "dev": true
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "engines": {
+ "node": ">=10"
+ }
},
"node_modules/deferred-leveldown": {
"version": "1.2.2",
@@ -7222,19 +6952,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/defu": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
@@ -7317,6 +7034,15 @@
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
"dev": true
},
+ "node_modules/diff": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
"node_modules/difflib": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz",
@@ -7422,9 +7148,9 @@
}
},
"node_modules/dotenv": {
- "version": "16.4.4",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz",
- "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==",
+ "version": "16.4.5",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
+ "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
"dev": true,
"engines": {
"node": ">=12"
@@ -7433,12 +7159,6 @@
"url": "https://dotenvx.com"
}
},
- "node_modules/duplexer3": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
- "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
- "dev": true
- },
"node_modules/ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -7459,9 +7179,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
- "version": "1.4.673",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.673.tgz",
- "integrity": "sha512-zjqzx4N7xGdl5468G+vcgzDhaHkaYgVcf9MqgexcTqsl2UHSCmOj/Bi3HAprg4BZCpC7HyD8a6nZl6QAZf72gw=="
+ "version": "1.4.684",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.684.tgz",
+ "integrity": "sha512-MoDE0pUsIzTewI96Vbv84sTkER9Nbp58pa1K7Ub03s6+2HvuJ+jbnxcLJm22mpomJe+5PWtiPXqhbU5ZkyHU5A=="
},
"node_modules/elliptic": {
"version": "6.5.4",
@@ -7643,14 +7363,14 @@
"dev": true
},
"node_modules/es-set-tostringtag": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
- "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.2.2",
- "has-tostringtag": "^1.0.0",
- "hasown": "^2.0.0"
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -7674,13 +7394,14 @@
}
},
"node_modules/es5-ext": {
- "version": "0.10.62",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
- "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
+ "version": "0.10.64",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
+ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
"hasInstallScript": true,
"dependencies": {
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.3",
+ "esniff": "^2.0.1",
"next-tick": "^1.1.0"
},
"engines": {
@@ -8035,17 +7756,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/eslint/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -8066,6 +7776,17 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/eslint/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/eslint/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -8077,6 +7798,20 @@
"node": "*"
}
},
+ "node_modules/eslint/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/eslint/node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -8093,6 +7828,30 @@
"node": ">=8"
}
},
+ "node_modules/eslint/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/esniff": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.62",
+ "event-emitter": "^0.3.5",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esniff/node_modules/type": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
+ },
"node_modules/espree": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
@@ -8224,16 +7983,64 @@
"ethers": "^5.0.19"
}
},
- "node_modules/eth-ens-namehash": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
- "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==",
- "dependencies": {
- "idna-uts46-hx": "^2.3.1",
- "js-sha3": "^0.5.7"
- }
- },
- "node_modules/eth-ens-namehash/node_modules/js-sha3": {
+ "node_modules/eth-create2-calculator/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ },
+ "node_modules/eth-ens-namehash": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
+ "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==",
+ "dependencies": {
+ "idna-uts46-hx": "^2.3.1",
+ "js-sha3": "^0.5.7"
+ }
+ },
+ "node_modules/eth-ens-namehash/node_modules/js-sha3": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
"integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g=="
@@ -8333,6 +8140,17 @@
"node": ">=4"
}
},
+ "node_modules/eth-gas-reporter/node_modules/axios": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz",
+ "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.4",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/eth-gas-reporter/node_modules/cli-table3": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
@@ -8361,6 +8179,54 @@
"@scure/bip39": "1.1.1"
}
},
+ "node_modules/eth-gas-reporter/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
+ }
+ },
"node_modules/eth-gas-reporter/node_modules/is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
@@ -8509,21 +8375,6 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/eth-lib/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/eth-lib/node_modules/ws": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
- "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
- "dependencies": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
- }
- },
"node_modules/eth-query": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz",
@@ -8899,14 +8750,14 @@
}
},
"node_modules/ethers": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
- "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+ "version": "6.11.1",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz",
+ "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==",
"dev": true,
"funding": [
{
"type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ "url": "https://github.com/sponsors/ethers-io/"
},
{
"type": "individual",
@@ -8914,36 +8765,43 @@
}
],
"dependencies": {
- "@ethersproject/abi": "5.7.0",
- "@ethersproject/abstract-provider": "5.7.0",
- "@ethersproject/abstract-signer": "5.7.0",
- "@ethersproject/address": "5.7.0",
- "@ethersproject/base64": "5.7.0",
- "@ethersproject/basex": "5.7.0",
- "@ethersproject/bignumber": "5.7.0",
- "@ethersproject/bytes": "5.7.0",
- "@ethersproject/constants": "5.7.0",
- "@ethersproject/contracts": "5.7.0",
- "@ethersproject/hash": "5.7.0",
- "@ethersproject/hdnode": "5.7.0",
- "@ethersproject/json-wallets": "5.7.0",
- "@ethersproject/keccak256": "5.7.0",
- "@ethersproject/logger": "5.7.0",
- "@ethersproject/networks": "5.7.1",
- "@ethersproject/pbkdf2": "5.7.0",
- "@ethersproject/properties": "5.7.0",
- "@ethersproject/providers": "5.7.2",
- "@ethersproject/random": "5.7.0",
- "@ethersproject/rlp": "5.7.0",
- "@ethersproject/sha2": "5.7.0",
- "@ethersproject/signing-key": "5.7.0",
- "@ethersproject/solidity": "5.7.0",
- "@ethersproject/strings": "5.7.0",
- "@ethersproject/transactions": "5.7.0",
- "@ethersproject/units": "5.7.0",
- "@ethersproject/wallet": "5.7.0",
- "@ethersproject/web": "5.7.1",
- "@ethersproject/wordlists": "5.7.0"
+ "@adraffy/ens-normalize": "1.10.1",
+ "@noble/curves": "1.2.0",
+ "@noble/hashes": "1.3.2",
+ "@types/node": "18.15.13",
+ "aes-js": "4.0.0-beta.5",
+ "tslib": "2.4.0",
+ "ws": "8.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/ethers/node_modules/@types/node": {
+ "version": "18.15.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz",
+ "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==",
+ "dev": true
+ },
+ "node_modules/ethers/node_modules/ws": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
+ "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
"node_modules/ethjs-unit": {
@@ -8977,15 +8835,24 @@
"npm": ">=3"
}
},
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
"node_modules/eventemitter3": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
},
"node_modules/events": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
- "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"engines": {
"node": ">=0.8.x"
}
@@ -9022,64 +8889,6 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
- "dev": true,
- "dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/expand-brackets/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-descriptor": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
- "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
- "dev": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/expand-brackets/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
"node_modules/express": {
"version": "4.18.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
@@ -9211,18 +9020,6 @@
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
- "node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "dev": true,
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/external-editor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
@@ -9237,37 +9034,6 @@
"node": ">=4"
}
},
- "node_modules/extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
@@ -9309,74 +9075,10 @@
"node": ">=8.6.0"
}
},
- "node_modules/fast-glob/node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fast-glob/node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-glob/node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/fast-glob/node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/fast-glob/node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
@@ -9422,26 +9124,15 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "dev": true,
- "optional": true
- },
"node_modules/fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
- "dev": true,
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
+ "to-regex-range": "^5.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
"node_modules/finalhandler": {
@@ -9521,9 +9212,9 @@
}
},
"node_modules/flatted": {
- "version": "3.2.9",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
- "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
},
"node_modules/fmix": {
"version": "0.1.0",
@@ -9562,15 +9253,6 @@
"is-callable": "^1.1.3"
}
},
- "node_modules/for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -9625,18 +9307,6 @@
"url": "https://github.com/sponsors/rawify"
}
},
- "node_modules/fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
- "dev": true,
- "dependencies": {
- "map-cache": "^0.2.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -9646,17 +9316,17 @@
}
},
"node_modules/fs-extra": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
- "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
"dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
},
"engines": {
- "node": ">=6 <7 || >=8"
+ "node": ">=12"
}
},
"node_modules/fs-minipass": {
@@ -9679,22 +9349,17 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/fsevents": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
- "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
- "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
"darwin"
],
- "dependencies": {
- "bindings": "^1.5.0",
- "nan": "^2.12.1"
- },
"engines": {
- "node": ">= 4.0"
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": {
@@ -9848,36 +9513,6 @@
"node": ">=14.14"
}
},
- "node_modules/get-uri/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/get-uri/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
@@ -9920,25 +9555,14 @@
}
},
"node_modules/glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
- "dev": true,
- "dependencies": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- }
- },
- "node_modules/glob-parent/node_modules/is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
- "dev": true,
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dependencies": {
- "is-extglob": "^2.1.0"
+ "is-glob": "^4.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 6"
}
},
"node_modules/glob/node_modules/brace-expansion": {
@@ -9998,16 +9622,6 @@
"node": ">=6"
}
},
- "node_modules/global-prefix/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/global-prefix/node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -10096,37 +9710,29 @@
}
},
"node_modules/got": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
- "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
- "dev": true,
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
+ "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
"dependencies": {
- "@sindresorhus/is": "^0.14.0",
- "@szmarczak/http-timer": "^1.1.2",
- "cacheable-request": "^6.0.0",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^4.1.0",
- "lowercase-keys": "^1.0.1",
- "mimic-response": "^1.0.1",
- "p-cancelable": "^1.0.0",
- "to-readable-stream": "^1.0.0",
- "url-parse-lax": "^3.0.0"
+ "@sindresorhus/is": "^4.6.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "@types/cacheable-request": "^6.0.2",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^6.0.4",
+ "cacheable-request": "^7.0.2",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "1.7.1",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^2.0.0"
},
"engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/got/node_modules/get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "dev": true,
- "dependencies": {
- "pump": "^3.0.0"
+ "node": ">=14.16"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
}
},
"node_modules/graceful-fs": {
@@ -10454,13 +10060,14 @@
}
},
"node_modules/hardhat-deploy-ethers": {
- "version": "0.3.0-beta.13",
- "resolved": "https://registry.npmjs.org/hardhat-deploy-ethers/-/hardhat-deploy-ethers-0.3.0-beta.13.tgz",
- "integrity": "sha512-PdWVcKB9coqWV1L7JTpfXRCI91Cgwsm7KLmBcwZ8f0COSm1xtABHZTyz3fvF6p42cTnz1VM0QnfDvMFlIRkSNw==",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy-ethers/-/hardhat-deploy-ethers-0.4.1.tgz",
+ "integrity": "sha512-RM6JUcD0dOCjemxnKLtK7XQQI7NWn+LxF5qicGYax0PtWayEUXAewOb4WIHZ/yearhj+s2t6dL0MnHyLTENwJg==",
"dev": true,
"peerDependencies": {
- "ethers": "^5.0.0",
- "hardhat": "^2.0.0"
+ "@nomicfoundation/hardhat-ethers": "^3.0.2",
+ "hardhat": "^2.16.0",
+ "hardhat-deploy": "^0.11.34"
}
},
"node_modules/hardhat-deploy/node_modules/ansi-styles": {
@@ -10478,49 +10085,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/hardhat-deploy/node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/hardhat-deploy/node_modules/axios": {
- "version": "0.21.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
- "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
- "dev": true,
- "dependencies": {
- "follow-redirects": "^1.14.0"
- }
- },
- "node_modules/hardhat-deploy/node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat-deploy/node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/hardhat-deploy/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -10537,30 +10101,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/hardhat-deploy/node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
"node_modules/hardhat-deploy/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -10579,56 +10119,52 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "node_modules/hardhat-deploy/node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "node_modules/hardhat-deploy/node_modules/ethers": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+ "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat-deploy/node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/hardhat-deploy/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/hardhat-deploy/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
+ "@ethersproject/abi": "5.7.0",
+ "@ethersproject/abstract-provider": "5.7.0",
+ "@ethersproject/abstract-signer": "5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@ethersproject/base64": "5.7.0",
+ "@ethersproject/basex": "5.7.0",
+ "@ethersproject/bignumber": "5.7.0",
+ "@ethersproject/bytes": "5.7.0",
+ "@ethersproject/constants": "5.7.0",
+ "@ethersproject/contracts": "5.7.0",
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/hdnode": "5.7.0",
+ "@ethersproject/json-wallets": "5.7.0",
+ "@ethersproject/keccak256": "5.7.0",
+ "@ethersproject/logger": "5.7.0",
+ "@ethersproject/networks": "5.7.1",
+ "@ethersproject/pbkdf2": "5.7.0",
+ "@ethersproject/properties": "5.7.0",
+ "@ethersproject/providers": "5.7.2",
+ "@ethersproject/random": "5.7.0",
+ "@ethersproject/rlp": "5.7.0",
+ "@ethersproject/sha2": "5.7.0",
+ "@ethersproject/signing-key": "5.7.0",
+ "@ethersproject/solidity": "5.7.0",
+ "@ethersproject/strings": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@ethersproject/units": "5.7.0",
+ "@ethersproject/wallet": "5.7.0",
+ "@ethersproject/web": "5.7.1",
+ "@ethersproject/wordlists": "5.7.0"
}
},
"node_modules/hardhat-deploy/node_modules/has-flag": {
@@ -10640,51 +10176,6 @@
"node": ">=8"
}
},
- "node_modules/hardhat-deploy/node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat-deploy/node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/hardhat-deploy/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/hardhat-deploy/node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
"node_modules/hardhat-deploy/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -10697,25 +10188,14 @@
"node": ">=8"
}
},
- "node_modules/hardhat-deploy/node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/hardhat-deploy/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "node_modules/hardhat-deploy/node_modules/zksync-web3": {
+ "version": "0.14.4",
+ "resolved": "https://registry.npmjs.org/zksync-web3/-/zksync-web3-0.14.4.tgz",
+ "integrity": "sha512-kYehMD/S6Uhe1g434UnaMN+sBr9nQm23Ywn0EUP5BfQCsbjcr3ORuS68PosZw8xUTu3pac7G6YMSnNHk+fwzvg==",
+ "deprecated": "This package has been deprecated in favor of zksync-ethers@5.0.0",
"dev": true,
- "engines": {
- "node": ">= 10.0.0"
+ "peerDependencies": {
+ "ethers": "^5.7.0"
}
},
"node_modules/hardhat-gas-reporter": {
@@ -10738,54 +10218,19 @@
"integrity": "sha512-6ZX+IMcO6i7Vf5gFrKtq+SwSi6AcLcqSVnX59gzhXGqR+sLL6J1C8EDFS8NCSYwmJkpCD0bb7QbNOd46JZxSGg==",
"dev": true,
"dependencies": {
- "@typechain/hardhat": "^6.0.0",
+ "@typechain/hardhat": "9.1.0",
"fs-extra": "^10.0.1",
"hardhat": "^2.9.2",
"tempy": "1.0.1",
"typechain": "^8.0.0"
},
"peerDependencies": {
- "@typechain/hardhat": "6.x",
+ "@typechain/hardhat": "9.1.0",
"hardhat": "2.x",
"lodash": "4.x",
"typechain": "8.x"
}
},
- "node_modules/hardhat-packager/node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/hardhat-packager/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/hardhat-packager/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
"node_modules/hardhat/node_modules/@noble/hashes": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
@@ -10810,616 +10255,102 @@
}
]
},
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-block": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.4.tgz",
- "integrity": "sha512-AcyacJ9eX/uPEvqsPiB+WO1ymE+kyH48qGGiGV+YTojdtas8itUTW5dehDSOXEEItWGbbzEJ4PRqnQZlWaPvDw==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "ethereum-cryptography": "0.1.3"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-block/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
+ "node_modules/hardhat/node_modules/@scure/bip32": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
+ "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
"dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
+ "@noble/hashes": "~1.2.0",
+ "@noble/secp256k1": "~1.7.0",
+ "@scure/base": "~1.1.0"
}
},
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-blockchain": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.4.tgz",
- "integrity": "sha512-jYsd/kwzbmpnxx86tXsYV8wZ5xGvFL+7/P0c6OlzpClHsbFzeF41KrYA9scON8Rg6bZu3ZTv6JOAgj3t7USUfg==",
+ "node_modules/hardhat/node_modules/@scure/bip39": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
+ "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
"dependencies": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-ethash": "3.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "lru-cache": "^10.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-common": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz",
- "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-util": "9.0.4"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-ethash": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.4.tgz",
- "integrity": "sha512-xvIrwIMl9sSaiYKRem68+O7vYdj7Q2XWv5P7JXiIkn83918QzWHvqbswTRsH7+r6X1UEvdsURRnZbvZszEjAaQ==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "bigint-crypto-utils": "^3.2.2",
- "ethereum-cryptography": "0.1.3"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-ethash/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-evm": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.4.tgz",
- "integrity": "sha512-lTyZZi1KpeMHzaO6cSVisR2tjiTTedjo7PcmhI/+GNFo9BmyY6QYzGeSti0sFttmjbEMioHgXxl5yrLNRg6+1w==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "@types/debug": "^4.1.9",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "rustbn-wasm": "^0.2.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-evm/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-rlp": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz",
- "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==",
- "dev": true,
- "bin": {
- "rlp": "bin/rlp.cjs"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-statemanager": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.4.tgz",
- "integrity": "sha512-HPDjeFrxw6llEi+BzqXkZ+KkvFnTOPczuHBtk21hRlDiuKuZz32dPzlhpRsDBGV1b5JTmRDUVqCS1lp3Gghw4Q==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "js-sdsl": "^4.1.4",
- "lru-cache": "^10.0.0"
- },
- "peerDependencies": {
- "@nomicfoundation/ethereumjs-verkle": "0.0.2"
- },
- "peerDependenciesMeta": {
- "@nomicfoundation/ethereumjs-verkle": {
- "optional": true
- }
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-statemanager/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-trie": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.4.tgz",
- "integrity": "sha512-3nSwQiFMvr2VFe/aZUyinuohYvtytUqZCUCvIWcPJ/BwJH6oQdZRB42aNFBJ/8nAh2s3OcroWpBLskzW01mFKA==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "@types/readable-stream": "^2.3.13",
- "ethereum-cryptography": "0.1.3",
- "lru-cache": "^10.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-trie/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-tx": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz",
- "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "ethereum-cryptography": "0.1.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "c-kzg": "^2.1.2"
- },
- "peerDependenciesMeta": {
- "c-kzg": {
- "optional": true
- }
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-util": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz",
- "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "ethereum-cryptography": "0.1.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "c-kzg": "^2.1.2"
- },
- "peerDependenciesMeta": {
- "c-kzg": {
- "optional": true
- }
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-vm": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.4.tgz",
- "integrity": "sha512-gsA4IhmtWHI4BofKy3kio9W+dqZQs5Ji5mLjLYxHCkat+JQBUt5szjRKra2F9nGDJ2XcI/wWb0YWUFNgln4zRQ==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-blockchain": "7.0.4",
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-evm": "2.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/hardhat/node_modules/@nomicfoundation/ethereumjs-vm/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/hardhat/node_modules/@scure/bip32": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
- "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "dependencies": {
- "@noble/hashes": "~1.2.0",
- "@noble/secp256k1": "~1.7.0",
- "@scure/base": "~1.1.0"
- }
- },
- "node_modules/hardhat/node_modules/@scure/bip39": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
- "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "dependencies": {
- "@noble/hashes": "~1.2.0",
- "@scure/base": "~1.1.0"
- }
- },
- "node_modules/hardhat/node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/hardhat/node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat/node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat/node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
+ "@noble/hashes": "~1.2.0",
+ "@scure/base": "~1.1.0"
}
},
"node_modules/hardhat/node_modules/ethereum-cryptography": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
- "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
- "dev": true,
- "dependencies": {
- "@noble/hashes": "1.2.0",
- "@noble/secp256k1": "1.7.1",
- "@scure/bip32": "1.1.5",
- "@scure/bip39": "1.1.1"
- }
- },
- "node_modules/hardhat/node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/hardhat/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/hardhat/node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat/node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/hardhat/node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
+ "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
"dev": true,
- "engines": {
- "node": "14 || >=16.14"
+ "dependencies": {
+ "@noble/hashes": "1.2.0",
+ "@noble/secp256k1": "1.7.1",
+ "@scure/bip32": "1.1.5",
+ "@scure/bip39": "1.1.1"
}
},
- "node_modules/hardhat/node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "node_modules/hardhat/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
"dev": true,
"dependencies": {
- "picomatch": "^2.2.1"
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
},
"engines": {
- "node": ">=8.10.0"
+ "node": ">=6 <7 || >=8"
}
},
- "node_modules/hardhat/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "node_modules/hardhat/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
}
},
- "node_modules/hardhat/node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "node_modules/hardhat/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
"engines": {
- "node": ">=8.0"
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/hardhat/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
"node_modules/has-bigints": {
@@ -11451,9 +10382,9 @@
}
},
"node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"engines": {
"node": ">= 0.4"
},
@@ -11486,51 +10417,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
- "dev": true,
- "dependencies": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
- },
- "node_modules/has-values/node_modules/kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
- "dev": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/hash-base": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
@@ -12056,18 +10942,6 @@
"node": ">= 0.10"
}
},
- "node_modules/is-accessor-descriptor": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz",
- "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==",
- "dev": true,
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -12118,15 +10992,15 @@
}
},
"node_modules/is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"dependencies": {
- "binary-extensions": "^1.0.0"
+ "binary-extensions": "^2.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
"node_modules/is-boolean-object": {
@@ -12183,18 +11057,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-data-descriptor": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
- "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==",
- "dev": true,
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
@@ -12210,28 +11072,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-descriptor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
- "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
- "dev": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -12320,9 +11160,9 @@
"dev": true
},
"node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true,
"engines": {
"node": ">= 0.4"
@@ -12332,15 +11172,11 @@
}
},
"node_modules/is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
- "dev": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.12.0"
}
},
"node_modules/is-number-object": {
@@ -12385,18 +11221,6 @@
"node": ">=8"
}
},
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-reference": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
@@ -12423,12 +11247,15 @@
}
},
"node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -12528,30 +11355,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
"node_modules/isbinaryfile": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
- "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
+ "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
"dev": true,
- "dependencies": {
- "buffer-alloc": "^1.2.0"
- },
"engines": {
- "node": ">=0.6.0"
+ "node": ">= 8.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/gjtorikian/"
}
},
"node_modules/isexe": {
@@ -12559,15 +11377,6 @@
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
@@ -12821,9 +11630,13 @@
"dev": true
},
"node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
@@ -12883,23 +11696,15 @@
}
},
"node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/kind-of/node_modules/is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
- },
"node_modules/klaw": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
@@ -12909,18 +11714,6 @@
"graceful-fs": "^4.1.9"
}
},
- "node_modules/latest-version": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
- "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
- "dev": true,
- "dependencies": {
- "package-json": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/level-codec": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
@@ -13112,6 +11905,13 @@
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
"dev": true
},
+ "node_modules/lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
@@ -13123,6 +11923,13 @@
"integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
"dev": true
},
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -13263,12 +12070,14 @@
}
},
"node_modules/lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
- "dev": true,
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
"engines": {
- "node": ">=0.10.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/lru_map": {
@@ -13278,11 +12087,12 @@
"dev": true
},
"node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dependencies": {
- "yallist": "^3.0.2"
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
}
},
"node_modules/ltgt": {
@@ -13290,45 +12100,24 @@
"resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
"integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA=="
},
- "node_modules/magic-string": {
- "version": "0.30.7",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz",
- "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
- },
- "node_modules/map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+ "node_modules/magic-string": {
+ "version": "0.30.7",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz",
+ "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
"dev": true,
"dependencies": {
- "object-visit": "^1.0.0"
+ "@jridgewell/sourcemap-codec": "^1.4.15"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
}
},
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true
+ },
"node_modules/markdown-table": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
@@ -13511,61 +12300,15 @@
"dev": true
},
"node_modules/micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dev": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dependencies": {
- "is-plain-object": "^2.0.4"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=8.6"
}
},
"node_modules/mime": {
@@ -13672,31 +12415,6 @@
"minipass": "^2.9.0"
}
},
- "node_modules/mixin-deep": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
- "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "dev": true,
- "dependencies": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mixin-deep/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/mkdirp": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
@@ -14188,18 +12906,6 @@
"node": ">= 4"
}
},
- "node_modules/mkdist/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
"node_modules/mkdist/node_modules/slash": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
@@ -14212,19 +12918,10 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/mkdist/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
"node_modules/mlly": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz",
- "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz",
+ "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==",
"dev": true,
"dependencies": {
"acorn": "^8.11.3",
@@ -14298,40 +12995,6 @@
"node": ">=6"
}
},
- "node_modules/mocha/node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/mocha/node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mocha/node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/mocha/node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -14370,15 +13033,6 @@
"wrap-ansi": "^7.0.0"
}
},
- "node_modules/mocha/node_modules/diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
"node_modules/mocha/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -14391,18 +13045,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/mocha/node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/mocha/node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -14419,20 +13061,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/mocha/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/mocha/node_modules/glob": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
@@ -14452,18 +13080,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/mocha/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/mocha/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -14473,27 +13089,6 @@
"node": ">=8"
}
},
- "node_modules/mocha/node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mocha/node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
"node_modules/mocha/node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -14566,18 +13161,6 @@
"node": ">=8"
}
},
- "node_modules/mocha/node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
"node_modules/mocha/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -14593,18 +13176,6 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/mocha/node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
"node_modules/mocha/node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -14659,71 +13230,25 @@
"dependencies": {
"base-x": "^3.0.8",
"buffer": "^5.5.0"
- }
- },
- "node_modules/multibase/node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/multicodec": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz",
- "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dependencies": {
- "varint": "^5.0.0"
- }
- },
- "node_modules/multihashes": {
- "version": "0.4.21",
- "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",
- "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==",
- "dependencies": {
- "buffer": "^5.5.0",
- "multibase": "^0.7.0",
- "varint": "^5.0.0"
- }
- },
- "node_modules/multihashes/node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
+ }
+ },
+ "node_modules/multicodec": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz",
+ "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==",
+ "deprecated": "This module has been superseded by the multiformats module",
"dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
+ "varint": "^5.0.0"
+ }
+ },
+ "node_modules/multihashes": {
+ "version": "0.4.21",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",
+ "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "multibase": "^0.7.0",
+ "varint": "^5.0.0"
}
},
"node_modules/multihashes/node_modules/multibase": {
@@ -14753,13 +13278,6 @@
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"dev": true
},
- "node_modules/nan": {
- "version": "2.18.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz",
- "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==",
- "dev": true,
- "optional": true
- },
"node_modules/nano-json-stream-parser": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
@@ -14783,62 +13301,6 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/nanomatch": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "dev": true,
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dev": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -15035,18 +13497,6 @@
"node": ">=8.0.0"
}
},
- "node_modules/node-plop/node_modules/isbinaryfile": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
- "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
- "dev": true,
- "engines": {
- "node": ">= 8.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/gjtorikian/"
- }
- },
"node_modules/node-plop/node_modules/rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
@@ -15145,12 +13595,14 @@
}
},
"node_modules/normalize-url": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
- "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
- "dev": true,
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/npm-run-all": {
@@ -15325,45 +13777,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/object-copy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
- "dev": true,
- "dependencies": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-descriptor": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
- "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
- "dev": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/object-inspect": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
@@ -15380,18 +13793,6 @@
"node": ">= 0.4"
}
},
- "node_modules/object-visit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object.assign": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
@@ -15410,18 +13811,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/obliterator": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz",
@@ -15666,12 +14055,11 @@
}
},
"node_modules/p-cancelable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
- "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
- "dev": true,
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
"engines": {
- "node": ">=6"
+ "node": ">=12.20"
}
},
"node_modules/p-limit": {
@@ -15779,30 +14167,6 @@
"node": ">= 14"
}
},
- "node_modules/package-json": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
- "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
- "dev": true,
- "dependencies": {
- "got": "^9.6.0",
- "registry-auth-token": "^4.0.0",
- "registry-url": "^5.0.0",
- "semver": "^6.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/package-json/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/param-case": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
@@ -15865,15 +14229,6 @@
"upper-case-first": "^1.1.0"
}
},
- "node_modules/pascalcase": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/path-case": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz",
@@ -15883,12 +14238,6 @@
"no-case": "^2.2.0"
}
},
- "node_modules/path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==",
- "dev": true
- },
"node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@@ -16039,13 +14388,12 @@
"node": ">=4"
}
},
- "node_modules/posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
- "dev": true,
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
}
},
"node_modules/postcss": {
@@ -16093,14 +14441,14 @@
}
},
"node_modules/postcss-colormin": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz",
- "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.3.tgz",
+ "integrity": "sha512-ECpkS+UZRyAtu/kjive2/1mihP+GNtgC8kcdU8ueWZi1ZVxMNnRziCLdhrWECJhEtSWijfX2Cl9XTTCK/hjGaA==",
"dev": true,
"dependencies": {
- "browserslist": "^4.22.2",
+ "browserslist": "^4.23.0",
"caniuse-api": "^3.0.0",
- "colord": "^2.9.1",
+ "colord": "^2.9.3",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -16111,12 +14459,12 @@
}
},
"node_modules/postcss-convert-values": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz",
- "integrity": "sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==",
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.4.tgz",
+ "integrity": "sha512-YT2yrGzPXoQD3YeA2kBo/696qNwn7vI+15AOS2puXWEvSWqdCqlOyDWRy5GNnOc9ACRGOkuQ4ESQEqPJBWt/GA==",
"dev": true,
"dependencies": {
- "browserslist": "^4.22.2",
+ "browserslist": "^4.23.0",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -16139,9 +14487,9 @@
}
},
"node_modules/postcss-discard-duplicates": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz",
- "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.2.tgz",
+ "integrity": "sha512-U2rsj4w6pAGROCCcD13LP2eBIi1whUsXs4kgE6xkIuGfkbxCBSKhkCTWyowFd66WdVlLv0uM1euJKIgmdmZObg==",
"dev": true,
"engines": {
"node": "^14 || ^16 || >=18.0"
@@ -16151,9 +14499,9 @@
}
},
"node_modules/postcss-discard-empty": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz",
- "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.2.tgz",
+ "integrity": "sha512-rj6pVC2dVCJrP0Y2RkYTQEbYaCf4HEm+R/2StQgJqGHxAa3+KcYslNQhcRqjLHtl/4wpzipJluaJLqBj6d5eDQ==",
"dev": true,
"engines": {
"node": "^14 || ^16 || >=18.0"
@@ -16175,13 +14523,13 @@
}
},
"node_modules/postcss-merge-longhand": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz",
- "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.3.tgz",
+ "integrity": "sha512-kF/y3DU8CRt+SX3tP/aG+2gkZI2Z7OXDsPU7FgxIJmuyhQQ1EHceIYcsp/alvzCm2P4c37Sfdu8nNrHc+YeyLg==",
"dev": true,
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^6.0.2"
+ "stylehacks": "^6.0.3"
},
"engines": {
"node": "^14 || ^16 || >=18.0"
@@ -16191,12 +14539,12 @@
}
},
"node_modules/postcss-merge-rules": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz",
- "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==",
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.4.tgz",
+ "integrity": "sha512-97iF3UJ5v8N1BWy38y+0l+Z8o5/9uGlEgtWic2PJPzoRrLB6Gxg8TVG93O0EK52jcLeMsywre26AUlX1YAYeHA==",
"dev": true,
"dependencies": {
- "browserslist": "^4.22.2",
+ "browserslist": "^4.23.0",
"caniuse-api": "^3.0.0",
"cssnano-utils": "^4.0.1",
"postcss-selector-parser": "^6.0.15"
@@ -16209,9 +14557,9 @@
}
},
"node_modules/postcss-minify-font-values": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz",
- "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.2.tgz",
+ "integrity": "sha512-IedzbVMoX0a7VZWjSYr5qJ6C37rws8kl8diPBeMZLJfWKkgXuMFY5R/OxPegn/q9tK9ztd0XRH3aR0u2t+A7uQ==",
"dev": true,
"dependencies": {
"postcss-value-parser": "^4.2.0"
@@ -16224,12 +14572,12 @@
}
},
"node_modules/postcss-minify-gradients": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz",
- "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.2.tgz",
+ "integrity": "sha512-vP5mF7iI6/5fcpv+rSfwWQekOE+8I1i7/7RjZPGuIjj6eUaZVeG4XZYZrroFuw1WQd51u2V32wyQFZ+oYdE7CA==",
"dev": true,
"dependencies": {
- "colord": "^2.9.1",
+ "colord": "^2.9.3",
"cssnano-utils": "^4.0.1",
"postcss-value-parser": "^4.2.0"
},
@@ -16241,12 +14589,12 @@
}
},
"node_modules/postcss-minify-params": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz",
- "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.3.tgz",
+ "integrity": "sha512-j4S74d3AAeCK5eGdQndXSrkxusV2ekOxbXGnlnZthMyZBBvSDiU34CihTASbJxuVB3bugudmwolS7+Dgs5OyOQ==",
"dev": true,
"dependencies": {
- "browserslist": "^4.22.2",
+ "browserslist": "^4.23.0",
"cssnano-utils": "^4.0.1",
"postcss-value-parser": "^4.2.0"
},
@@ -16379,12 +14727,12 @@
}
},
"node_modules/postcss-normalize-unicode": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz",
- "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.3.tgz",
+ "integrity": "sha512-T2Bb3gXz0ASgc3ori2dzjv6j/P2IantreaC6fT8tWjqYUiqMAh5jGIkdPwEV2FaucjQlCLeFJDJh2BeSugE1ig==",
"dev": true,
"dependencies": {
- "browserslist": "^4.22.2",
+ "browserslist": "^4.23.0",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -16441,12 +14789,12 @@
}
},
"node_modules/postcss-reduce-initial": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz",
- "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.3.tgz",
+ "integrity": "sha512-w4QIR9pEa1N4xMx3k30T1vLZl6udVK2RmNqrDXhBXX9L0mBj2a8ADs8zkbaEH7eUy1m30Wyr5EBgHN31Yq1JvA==",
"dev": true,
"dependencies": {
- "browserslist": "^4.22.2",
+ "browserslist": "^4.23.0",
"caniuse-api": "^3.0.0"
},
"engines": {
@@ -16537,15 +14885,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/prepend-http": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/prettier": {
"version": "2.8.8",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
@@ -16594,6 +14933,39 @@
"integrity": "sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw==",
"dev": true
},
+ "node_modules/prettier-plugin-solidity/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/prettier-plugin-solidity/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/prettier-plugin-solidity/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
"node_modules/pretty-bytes": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz",
@@ -16889,71 +15261,33 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
"dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdirp": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/readdirp/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "node_modules/readdirp/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/readdirp/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
},
- "node_modules/readdirp/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
}
},
"node_modules/rechoir": {
@@ -17020,44 +15354,6 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
- "node_modules/regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "dev": true,
- "dependencies": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dev": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/regexp.prototype.flags": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
@@ -17088,53 +15384,27 @@
}
},
"node_modules/registry-auth-token": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz",
- "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
+ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
"dev": true,
"dependencies": {
- "rc": "1.2.8"
- },
- "engines": {
- "node": ">=6.0.0"
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
}
},
"node_modules/registry-url": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
- "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==",
"dev": true,
"dependencies": {
- "rc": "^1.2.8"
+ "rc": "^1.0.1"
},
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==",
- "dev": true
- },
- "node_modules/repeat-element": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
- "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
- "dev": true,
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/req-cwd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz",
@@ -17276,20 +15546,23 @@
"node": ">=4"
}
},
- "node_modules/resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
- "deprecated": "https://github.com/lydell/resolve-url#deprecated",
- "dev": true
- },
"node_modules/responselike": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
- "dev": true,
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
"dependencies": {
- "lowercase-keys": "^1.0.0"
+ "lowercase-keys": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/responselike/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/restore-cursor": {
@@ -17305,15 +15578,6 @@
"node": ">=8"
}
},
- "node_modules/ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "dev": true,
- "engines": {
- "node": ">=0.12"
- }
- },
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -17430,20 +15694,6 @@
"rollup": "^1.20.0 || ^2.0.0 || ^3.0.0"
}
},
- "node_modules/rollup/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/run-async": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
@@ -17504,12 +15754,6 @@
"tslib": "^2.1.0"
}
},
- "node_modules/rxjs/node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
- "dev": true
- },
"node_modules/safe-array-concat": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
@@ -17556,15 +15800,6 @@
"events": "^3.0.0"
}
},
- "node_modules/safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
- "dev": true,
- "dependencies": {
- "ret": "~0.1.10"
- }
- },
"node_modules/safe-regex-test": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
@@ -17899,35 +16134,13 @@
}
},
"node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
}
},
- "node_modules/semver/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
@@ -18040,14 +16253,15 @@
}
},
"node_modules/set-function-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
- "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
"dependencies": {
- "define-data-property": "^1.0.1",
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
"functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -18061,21 +16275,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/set-value": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
- "dev": true,
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
@@ -18209,6 +16408,17 @@
"simple-concat": "^1.0.0"
}
},
+ "node_modules/simple-get/node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -18252,146 +16462,40 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/slice-ansi/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "dev": true,
- "engines": {
- "node": ">= 6.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/snake-case": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
- "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==",
- "dev": true,
- "dependencies": {
- "no-case": "^2.2.0"
- }
- },
- "node_modules/snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "dev": true,
- "dependencies": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "dev": true,
- "dependencies": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "dev": true,
- "dependencies": {
- "kind-of": "^3.2.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/snapdragon/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-descriptor": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
- "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
- "dev": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=7.0.0"
}
},
- "node_modules/snapdragon/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "node_modules/slice-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "node_modules/snapdragon/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/snake-case": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
+ "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==",
+ "dev": true,
+ "dependencies": {
+ "no-case": "^2.2.0"
}
},
"node_modules/socks": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz",
- "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz",
+ "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==",
"dev": true,
"dependencies": {
"ip-address": "^9.0.5",
@@ -18589,15 +16693,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "node_modules/solhint/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/solhint/node_modules/glob": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
@@ -18635,6 +16730,18 @@
"node": ">= 4"
}
},
+ "node_modules/solhint/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/solhint/node_modules/minimatch": {
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
@@ -18647,6 +16754,21 @@
"node": ">=10"
}
},
+ "node_modules/solhint/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/solhint/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -18659,6 +16781,12 @@
"node": ">=8"
}
},
+ "node_modules/solhint/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
"node_modules/solidity-bytes-utils": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/solidity-bytes-utils/-/solidity-bytes-utils-0.8.0.tgz",
@@ -18674,9 +16802,9 @@
"dev": true
},
"node_modules/solidity-coverage": {
- "version": "0.8.7",
- "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.7.tgz",
- "integrity": "sha512-RzcPuNsIqVGq5F8rjQZPdI2EVdsRU7w2f1Uk1UY567n9eNcg5LSEQ3Q1WFoy9bi/2AD5SYbYK9SS/Nwh2oYbNw==",
+ "version": "0.8.9",
+ "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.9.tgz",
+ "integrity": "sha512-ZhPsxlsLkYyzgwoVGh8RBN2ju7JVahvMkk+8RBVc0vP/3UNq88GzvL8kvbuY48lVIRL8eQjJ+0X8al2Bu9/2iQ==",
"dev": true,
"peer": true,
"dependencies": {
@@ -18729,6 +16857,29 @@
"node": ">=6 <7 || >=8"
}
},
+ "node_modules/solidity-coverage/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "peer": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/solidity-coverage/node_modules/pify": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
@@ -18739,6 +16890,39 @@
"node": ">=6"
}
},
+ "node_modules/solidity-coverage/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/solidity-coverage/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -18757,20 +16941,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
- "dev": true,
- "dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
"node_modules/source-map-support": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
@@ -18781,13 +16951,6 @@
"source-map": "^0.6.0"
}
},
- "node_modules/source-map-url": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
- "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
- "deprecated": "See https://github.com/lydell/source-map-url#deprecated",
- "dev": true
- },
"node_modules/spdx-correct": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
@@ -18820,43 +16983,6 @@
"integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
"dev": true
},
- "node_modules/split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "dev": true,
- "dependencies": {
- "extend-shallow": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/split-string/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dev": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/split-string/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/sprintf-js": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
@@ -18930,44 +17056,6 @@
"node": ">=8"
}
},
- "node_modules/static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
- "dev": true,
- "dependencies": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-descriptor": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
- "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
- "dev": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
@@ -19126,12 +17214,12 @@
}
},
"node_modules/stylehacks": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz",
- "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.3.tgz",
+ "integrity": "sha512-KzBqjnqktc8/I0ERCb+lGq06giF/JxDbw2r9kEVhen9noHeIDRtMWUp9r62sOk+/2bbX6sFG1GhsS7ToXG0PEg==",
"dev": true,
"dependencies": {
- "browserslist": "^4.22.2",
+ "browserslist": "^4.23.0",
"postcss-selector-parser": "^6.0.15"
},
"engines": {
@@ -19208,114 +17296,41 @@
"upper-case": "^1.1.1"
}
},
- "node_modules/swarm-js": {
- "version": "0.1.42",
- "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz",
- "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==",
- "dependencies": {
- "bluebird": "^3.5.0",
- "buffer": "^5.0.5",
- "eth-lib": "^0.1.26",
- "fs-extra": "^4.0.2",
- "got": "^11.8.5",
- "mime-types": "^2.1.16",
- "mkdirp-promise": "^5.0.1",
- "mock-fs": "^4.1.0",
- "setimmediate": "^1.0.5",
- "tar": "^4.0.2",
- "xhr-request": "^1.0.1"
- }
- },
- "node_modules/swarm-js/node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/swarm-js/node_modules/@szmarczak/http-timer": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
- "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
- "dependencies": {
- "defer-to-connect": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/swarm-js/node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/swarm-js/node_modules/cacheable-lookup": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
- "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
- "engines": {
- "node": ">=10.6.0"
- }
- },
- "node_modules/swarm-js/node_modules/cacheable-request": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
- "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
- "dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^6.0.1",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
+ "node_modules/swarm-js": {
+ "version": "0.1.42",
+ "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz",
+ "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==",
+ "dependencies": {
+ "bluebird": "^3.5.0",
+ "buffer": "^5.0.5",
+ "eth-lib": "^0.1.26",
+ "fs-extra": "^4.0.2",
+ "got": "^11.8.5",
+ "mime-types": "^2.1.16",
+ "mkdirp-promise": "^5.0.1",
+ "mock-fs": "^4.1.0",
+ "setimmediate": "^1.0.5",
+ "tar": "^4.0.2",
+ "xhr-request": "^1.0.1"
}
},
- "node_modules/swarm-js/node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "node_modules/swarm-js/node_modules/@szmarczak/http-timer": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"dependencies": {
- "mimic-response": "^3.1.0"
+ "defer-to-connect": "^2.0.0"
},
"engines": {
"node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/swarm-js/node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "node_modules/swarm-js/node_modules/cacheable-lookup": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
"engines": {
- "node": ">=10"
+ "node": ">=10.6.0"
}
},
"node_modules/swarm-js/node_modules/fs-extra": {
@@ -19328,20 +17343,6 @@
"universalify": "^0.1.0"
}
},
- "node_modules/swarm-js/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/swarm-js/node_modules/got": {
"version": "11.8.6",
"resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
@@ -19378,6 +17379,14 @@
"node": ">=10.19.0"
}
},
+ "node_modules/swarm-js/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
"node_modules/swarm-js/node_modules/lowercase-keys": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
@@ -19386,28 +17395,6 @@
"node": ">=8"
}
},
- "node_modules/swarm-js/node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/swarm-js/node_modules/normalize-url": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
- "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/swarm-js/node_modules/p-cancelable": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
@@ -19416,15 +17403,12 @@
"node": ">=8"
}
},
- "node_modules/swarm-js/node_modules/responselike": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
- "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
- "dependencies": {
- "lowercase-keys": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node_modules/swarm-js/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "engines": {
+ "node": ">= 4.0.0"
}
},
"node_modules/sync-request": {
@@ -19688,9 +17672,9 @@
}
},
"node_modules/tiny-invariant": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
- "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
"dev": true
},
"node_modules/tinycolor2": {
@@ -19739,78 +17723,15 @@
"node": ">=4"
}
},
- "node_modules/to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
- "dev": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-readable-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
- "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "dev": true,
- "dependencies": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
- "dev": true,
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dev": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dependencies": {
- "is-plain-object": "^2.0.4"
+ "is-number": "^7.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0"
}
},
"node_modules/toidentifier": {
@@ -20032,9 +17953,9 @@
"link": true
},
"node_modules/tslib": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
- "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/tsort": {
"version": "0.0.1",
@@ -20241,6 +18162,20 @@
"concat-map": "0.0.1"
}
},
+ "node_modules/typechain/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
"node_modules/typechain/node_modules/glob": {
"version": "7.1.7",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
@@ -20261,6 +18196,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/typechain/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
"node_modules/typechain/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -20285,13 +18229,22 @@
"node": ">=10"
}
},
+ "node_modules/typechain/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/typed-array-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz",
- "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"is-typed-array": "^1.1.13"
},
@@ -20300,15 +18253,16 @@
}
},
"node_modules/typed-array-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -20318,16 +18272,16 @@
}
},
"node_modules/typed-array-byte-offset": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.1.tgz",
- "integrity": "sha512-tcqKMrTRXjqvHN9S3553NPCaGL0VPgFI92lXszmrE8DMhiDPLBYLlvo8Uu4WZAAX/aGqp/T1sbA4ph8EWjDF9Q==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
"dev": true,
"dependencies": {
- "available-typed-arrays": "^1.0.6",
+ "available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-proto": "^1.0.1",
+ "has-proto": "^1.0.3",
"is-typed-array": "^1.1.13"
},
"engines": {
@@ -20338,14 +18292,20 @@
}
},
"node_modules/typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
+ "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -20906,123 +18866,55 @@
"engines": {
"node": ">=12"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/undici": {
- "version": "5.28.3",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz",
- "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==",
- "dev": true,
- "dependencies": {
- "@fastify/busboy": "^2.0.0"
- },
- "engines": {
- "node": ">=14.0"
- }
- },
- "node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
- },
- "node_modules/union-value": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
- "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
- "dev": true,
- "dependencies": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
- "dev": true,
- "dependencies": {
- "crypto-random-string": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
- "dev": true,
- "dependencies": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/unset-value/node_modules/has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+ "node_modules/undici": {
+ "version": "5.28.3",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz",
+ "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==",
"dev": true,
"dependencies": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
+ "@fastify/busboy": "^2.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=14.0"
}
},
- "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+ },
+ "node_modules/unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
"dev": true,
"dependencies": {
- "isarray": "1.0.0"
+ "crypto-random-string": "^2.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/unset-value/node_modules/has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 10.0.0"
}
},
- "node_modules/unset-value/node_modules/isarray": {
+ "node_modules/unpipe": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
"node_modules/untyped": {
"version": "1.4.2",
@@ -21042,16 +18934,6 @@
"untyped": "dist/cli.mjs"
}
},
- "node_modules/upath": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
- "dev": true,
- "engines": {
- "node": ">=4",
- "yarn": "*"
- }
- },
"node_modules/update-browserslist-db": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
@@ -21091,28 +18973,6 @@
"registry-url": "3.1.0"
}
},
- "node_modules/update-check/node_modules/registry-auth-token": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
- "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
- "dev": true,
- "dependencies": {
- "rc": "^1.1.6",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/update-check/node_modules/registry-url": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
- "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==",
- "dev": true,
- "dependencies": {
- "rc": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/upper-case": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
@@ -21136,39 +18996,11 @@
"punycode": "^2.1.0"
}
},
- "node_modules/urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
- "deprecated": "Please see https://github.com/lydell/urix#deprecated",
- "dev": true
- },
- "node_modules/url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
- "dev": true,
- "dependencies": {
- "prepend-http": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/url-set-query": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
"integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg=="
},
- "node_modules/use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/utf-8-validate": {
"version": "5.0.10",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
@@ -21280,9 +19112,9 @@
}
},
"node_modules/vite": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.3.tgz",
- "integrity": "sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz",
+ "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==",
"dev": true,
"peer": true,
"dependencies": {
@@ -21426,40 +19258,6 @@
"node": ">=4"
}
},
- "node_modules/vite-plugin-checker/node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/vite-plugin-checker/node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/vite-plugin-checker/node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/vite-plugin-checker/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -21503,30 +19301,6 @@
"node": ">=8"
}
},
- "node_modules/vite-plugin-checker/node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
"node_modules/vite-plugin-checker/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -21554,18 +19328,6 @@
"node": ">= 12"
}
},
- "node_modules/vite-plugin-checker/node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/vite-plugin-checker/node_modules/fs-extra": {
"version": "11.2.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
@@ -21580,32 +19342,6 @@
"node": ">=14.14"
}
},
- "node_modules/vite-plugin-checker/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/vite-plugin-checker/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/vite-plugin-checker/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -21615,72 +19351,6 @@
"node": ">=8"
}
},
- "node_modules/vite-plugin-checker/node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/vite-plugin-checker/node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/vite-plugin-checker/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/vite-plugin-checker/node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/vite-plugin-checker/node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/vite-plugin-checker/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
"node_modules/vite-tsconfig-paths": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.1.tgz",
@@ -22099,33 +19769,18 @@
"@esbuild/linux-arm": "0.19.12",
"@esbuild/linux-arm64": "0.19.12",
"@esbuild/linux-ia32": "0.19.12",
- "@esbuild/linux-loong64": "0.19.12",
- "@esbuild/linux-mips64el": "0.19.12",
- "@esbuild/linux-ppc64": "0.19.12",
- "@esbuild/linux-riscv64": "0.19.12",
- "@esbuild/linux-s390x": "0.19.12",
- "@esbuild/linux-x64": "0.19.12",
- "@esbuild/netbsd-x64": "0.19.12",
- "@esbuild/openbsd-x64": "0.19.12",
- "@esbuild/sunos-x64": "0.19.12",
- "@esbuild/win32-arm64": "0.19.12",
- "@esbuild/win32-ia32": "0.19.12",
- "@esbuild/win32-x64": "0.19.12"
- }
- },
- "node_modules/vite/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ "@esbuild/linux-loong64": "0.19.12",
+ "@esbuild/linux-mips64el": "0.19.12",
+ "@esbuild/linux-ppc64": "0.19.12",
+ "@esbuild/linux-riscv64": "0.19.12",
+ "@esbuild/linux-s390x": "0.19.12",
+ "@esbuild/linux-x64": "0.19.12",
+ "@esbuild/netbsd-x64": "0.19.12",
+ "@esbuild/openbsd-x64": "0.19.12",
+ "@esbuild/sunos-x64": "0.19.12",
+ "@esbuild/win32-arm64": "0.19.12",
+ "@esbuild/win32-ia32": "0.19.12",
+ "@esbuild/win32-x64": "0.19.12"
}
},
"node_modules/vite/node_modules/rollup": {
@@ -22194,6 +19849,18 @@
"concat-map": "0.0.1"
}
},
+ "node_modules/vscode-languageclient/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/vscode-languageclient/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -22206,6 +19873,27 @@
"node": "*"
}
},
+ "node_modules/vscode-languageclient/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vscode-languageclient/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
"node_modules/vscode-languageserver": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz",
@@ -22289,195 +19977,12 @@
"node": ">=8.0.0"
}
},
- "node_modules/web3-bzz/node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/web3-bzz/node_modules/@szmarczak/http-timer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
- "dev": true,
- "dependencies": {
- "defer-to-connect": "^2.0.1"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
"node_modules/web3-bzz/node_modules/@types/node": {
"version": "12.20.55",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
"integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
"dev": true
},
- "node_modules/web3-bzz/node_modules/cacheable-request": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
- "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
- "dev": true,
- "dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^6.0.1",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/web3-bzz/node_modules/cacheable-request/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dev": true,
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/web3-bzz/node_modules/cacheable-request/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/web3-bzz/node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "dev": true,
- "dependencies": {
- "mimic-response": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/web3-bzz/node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/web3-bzz/node_modules/got": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
- "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
- "dev": true,
- "dependencies": {
- "@sindresorhus/is": "^4.6.0",
- "@szmarczak/http-timer": "^5.0.1",
- "@types/cacheable-request": "^6.0.2",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^6.0.4",
- "cacheable-request": "^7.0.2",
- "decompress-response": "^6.0.0",
- "form-data-encoder": "1.7.1",
- "get-stream": "^6.0.1",
- "http2-wrapper": "^2.1.10",
- "lowercase-keys": "^3.0.0",
- "p-cancelable": "^3.0.0",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
- "node_modules/web3-bzz/node_modules/lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/web3-bzz/node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/web3-bzz/node_modules/normalize-url": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
- "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/web3-bzz/node_modules/p-cancelable": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
- "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- }
- },
- "node_modules/web3-bzz/node_modules/responselike": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
- "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
- "dev": true,
- "dependencies": {
- "lowercase-keys": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/web3-bzz/node_modules/responselike/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/web3-core": {
"version": "1.10.4",
"resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz",
@@ -22940,6 +20445,30 @@
"node": ">=8.0.0"
}
},
+ "node_modules/web3-utils/node_modules/@noble/curves": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz",
+ "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==",
+ "dev": true,
+ "dependencies": {
+ "@noble/hashes": "1.3.3"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/web3-utils/node_modules/@noble/hashes": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz",
+ "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/web3-utils/node_modules/ethereum-cryptography": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz",
@@ -23160,32 +20689,26 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "node_modules/ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "dev": true,
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "dependencies": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
}
},
+ "node_modules/ws/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
"node_modules/xhr": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
@@ -23417,16 +20940,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/zksync-web3": {
- "version": "0.14.4",
- "resolved": "https://registry.npmjs.org/zksync-web3/-/zksync-web3-0.14.4.tgz",
- "integrity": "sha512-kYehMD/S6Uhe1g434UnaMN+sBr9nQm23Ywn0EUP5BfQCsbjcr3ORuS68PosZw8xUTu3pac7G6YMSnNHk+fwzvg==",
- "deprecated": "This package has been deprecated in favor of zksync-ethers@5.0.0",
- "dev": true,
- "peerDependencies": {
- "ethers": "^5.7.0"
- }
- },
"packages/lsp0-contracts": {
"name": "@lukso/lsp0-contracts",
"version": "0.12.1",
@@ -23439,35 +20952,6 @@
"@lukso/lsp2-contracts": "*",
"@lukso/lsp20-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^4.9.5"
- }
- },
- "packages/lsp0-contracts/node_modules/typescript": {
- "version": "4.9.5",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
}
},
"packages/lsp1-contracts": {
@@ -23475,25 +20959,8 @@
"version": "0.12.1",
"license": "Apache-2.0",
"dependencies": {
- "@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
"@lukso/lsp2-contracts": "*",
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
+ "@openzeppelin/contracts": "^4.9.3"
}
},
"packages/lsp10-contracts": {
@@ -23503,24 +20970,6 @@
"dependencies": {
"@erc725/smart-contracts": "^6.0.0",
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@lukso/lsp2-contracts": "*",
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp10-contracts/node_modules/@erc725/smart-contracts": {
@@ -23538,23 +20987,6 @@
"license": "Apache-2.0",
"dependencies": {
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp14-contracts": {
@@ -23564,23 +20996,6 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@lukso/lsp1-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp16-contracts": {
@@ -23588,26 +21003,9 @@
"version": "0.12.1",
"license": "Apache-2.0",
"dependencies": {
- "@openzeppelin/contracts": "^4.9.2"
- },
- "devDependencies": {
"@erc725/smart-contracts": "^7.0.0",
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@openzeppelin/contracts-upgradeable": "^4.9.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
+ "@openzeppelin/contracts": "^4.9.2",
+ "@openzeppelin/contracts-upgradeable": "^4.9.2"
}
},
"packages/lsp17-contracts": {
@@ -23621,23 +21019,6 @@
"@lukso/lsp17contractextension-contracts": "*",
"@lukso/lsp20-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp17contractextension-contracts": {
@@ -23647,23 +21028,6 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp1delegate-contracts": {
@@ -23679,23 +21043,6 @@
"@lukso/lsp8-contracts": "*",
"@lukso/lsp9-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp2-contracts": {
@@ -23705,46 +21052,12 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.6.2",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp20-contracts": {
"name": "@lukso/lsp20-contracts",
"version": "0.12.1",
- "license": "Apache-2.0",
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
- }
+ "license": "Apache-2.0"
},
"packages/lsp23-contracts": {
"name": "@lukso/lsp23-contracts",
@@ -23754,23 +21067,6 @@
"@erc725/smart-contracts": "^7.0.0",
"@lukso/universalprofile-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp25-contracts": {
@@ -23779,23 +21075,6 @@
"license": "Apache-2.0",
"dependencies": {
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.6.2",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp3-contracts": {
@@ -23804,23 +21083,6 @@
"license": "Apache-2.0",
"dependencies": {
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp4-contracts": {
@@ -23830,23 +21092,6 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp5-contracts": {
@@ -23856,24 +21101,6 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@lukso/lsp2-contracts": "*",
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp6-contracts": {
@@ -23889,23 +21116,6 @@
"@lukso/lsp20-contracts": "*",
"@lukso/lsp25-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp7-contracts": {
@@ -23917,23 +21127,6 @@
"@lukso/lsp1-contracts": "*",
"@lukso/lsp17contractextension-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp8-contracts": {
@@ -23947,23 +21140,6 @@
"@lukso/lsp2-contracts": "*",
"@lukso/lsp4-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/lsp9-contracts": {
@@ -23975,23 +21151,6 @@
"@lukso/lsp1-contracts": "*",
"@lukso/lsp6-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
},
"packages/universalprofile-contracts": {
@@ -24003,23 +21162,6 @@
"@lukso/lsp0-contracts": "*",
"@lukso/lsp3-contracts": "*",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
}
diff --git a/package.json b/package.json
index c4a16d8df..c100deaf5 100644
--- a/package.json
+++ b/package.json
@@ -30,8 +30,6 @@
"contracts/**/*.sol",
"!contracts/Mocks/**/*.sol",
"artifacts/*.json",
- "userdocs/*.json",
- "devdocs/*.json",
"dist",
"./README.md",
"./CONTRIBUTING.md",
@@ -56,13 +54,12 @@
"import": "./dist/constants.mjs",
"types": "./dist/constants.d.ts"
},
- "./userdocs/*": "./userdocs",
- "./devdocs/*": "./devdocs/*",
"./artifacts/*": "./artifacts/*",
"./dist/*": "./dist/*",
"./package.json": "./package.json"
},
"scripts": {
+ "preinstall": "npx --yes force-resolutions",
"build": "hardhat compile",
"build:turbo": "turbo build",
"build:docs": "hardhat dodoc && prettier -w ./docs",
@@ -84,7 +81,6 @@
"test:up": "hardhat test --no-compile tests/UniversalProfile.test.ts",
"test:upinit": "hardhat test --no-compile tests/UniversalProfileInit.test.ts",
"test:lsp1": "hardhat test --no-compile tests/LSP1UniversalReceiver/*.test.ts",
- "test:lsp2": "hardhat test --no-compile tests/LSP2ERC725YJSONSchema/LSP2UtilsLibrary.test.ts",
"test:lsp6": "hardhat test --no-compile tests/LSP6KeyManager/LSP6KeyManager.test.ts",
"test:lsp6init": "hardhat test --no-compile tests/LSP6KeyManager/LSP6KeyManagerInit.test.ts",
"test:lsp7": "hardhat test --no-compile tests/LSP7DigitalAsset/standard/*.test.ts",
@@ -100,7 +96,6 @@
"test:lsp20": "hardhat test --no-compile tests/LSP20CallVerification/LSP6/LSP20WithLSP6.test.ts",
"test:lsp20init": "hardhat test --no-compile tests/LSP20CallVerification/LSP6/LSP20WithLSP6Init.test.ts",
"test:lsp23": "hardhat test --no-compile tests/LSP23LinkedContractsDeployment/LSP23LinkedContractsDeployment.test.ts",
- "test:lsp25": "hardhat test --no-compile tests/LSP25ExecuteRelayCall/LSP25MultiChannelNonce.test.ts",
"test:reentrancy": "hardhat test --no-compile tests/Reentrancy/Reentrancy.test.ts",
"test:reentrancyinit": "hardhat test --no-compile tests/Reentrancy/ReentrancyInit.test.ts",
"test:foundry": "forge test --no-match-test Skip -vvv --gas-report > gasreport.ansi",
@@ -109,51 +104,51 @@
"dependencies": {
"@account-abstraction/contracts": "^0.6.0",
"@erc725/smart-contracts": "^7.0.0",
- "@openzeppelin/contracts": "^4.9.2",
- "@openzeppelin/contracts-upgradeable": "^4.9.2",
- "solidity-bytes-utils": "0.8.0",
"@lukso/lsp0-contracts": "*",
"@lukso/lsp1-contracts": "*",
- "@lukso/lsp1delegate-contracts": "*",
- "@lukso/lsp2-contracts": "*",
- "@lukso/lsp3-contracts": "*",
- "@lukso/lsp4-contracts": "*",
- "@lukso/lsp5-contracts": "*",
- "@lukso/lsp6-contracts": "*",
- "@lukso/lsp7-contracts": "*",
- "@lukso/lsp8-contracts": "*",
- "@lukso/lsp9-contracts": "*",
"@lukso/lsp10-contracts": "*",
"@lukso/lsp12-contracts": "*",
"@lukso/lsp14-contracts": "*",
"@lukso/lsp16-contracts": "*",
"@lukso/lsp17-contracts": "*",
"@lukso/lsp17contractextension-contracts": "*",
+ "@lukso/lsp1delegate-contracts": "*",
+ "@lukso/lsp2-contracts": "*",
"@lukso/lsp20-contracts": "*",
"@lukso/lsp23-contracts": "*",
"@lukso/lsp25-contracts": "*",
- "@lukso/universalprofile-contracts": "*"
+ "@lukso/lsp3-contracts": "*",
+ "@lukso/lsp4-contracts": "*",
+ "@lukso/lsp5-contracts": "*",
+ "@lukso/lsp6-contracts": "*",
+ "@lukso/lsp7-contracts": "*",
+ "@lukso/lsp8-contracts": "*",
+ "@lukso/lsp9-contracts": "*",
+ "@lukso/universalprofile-contracts": "*",
+ "@openzeppelin/contracts": "^4.9.2",
+ "@openzeppelin/contracts-upgradeable": "^4.9.2",
+ "solidity-bytes-utils": "0.8.0"
},
"devDependencies": {
"@b00ste/hardhat-dodoc": "^0.3.16",
- "@erc725/erc725.js": "0.17.2",
+ "@erc725/erc725.js": "0.23.0",
"@lukso/eip191-signer.js": "^0.2.2",
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
+ "@nomicfoundation/hardhat-toolbox": "^4.0.0",
"@nomiclabs/hardhat-web3": "^2.0.0",
- "@remix-project/remixd": "^0.6.12",
- "@turbo/gen": "^1.9.7",
- "@typechain/ethers-v5": "^10.2.0",
- "all-contributors-cli": "^6.24.0",
+ "@turbo/gen": "^1.12.3",
+ "@typechain/ethers-v6": "^0.5.1",
+ "@typechain/hardhat": "9.1.0",
+ "all-contributors-cli": "^6.26.1",
"dotenv": "^16.0.3",
"esbuild": "^0.17.15",
- "eslint-config-custom": "*",
"eslint": "^7.32.0",
+ "eslint-config-custom": "*",
"eth-create2-calculator": "^1.1.5",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
+ "ethers": "^6.11.0",
+ "hardhat": "^2.20.1",
"hardhat-contract-sizer": "^2.8.0",
"hardhat-deploy": "^0.11.25",
- "hardhat-deploy-ethers": "^0.3.0-beta.13",
+ "hardhat-deploy-ethers": "^0.4.1",
"hardhat-gas-reporter": "^1.0.9",
"hardhat-packager": "^1.4.2",
"markdown-table-ts": "^1.0.3",
@@ -165,7 +160,7 @@
"solhint": "^3.6.2",
"ts-node": "^10.2.0",
"turbo": "latest",
- "typechain": "^8.0.0",
+ "typechain": "^8.3.2",
"typescript": "^5.3.3",
"unbuild": "^2.0.0",
"vite-plugin-checker": "^0.5.6",
@@ -175,5 +170,8 @@
"workspaces": [
"config/*",
"packages/*"
- ]
+ ],
+ "resolutions": {
+ "@typechain/hardhat": "9.1.0"
+ }
}
diff --git a/packages/lsp0-contracts/hardhat.config.ts b/packages/lsp0-contracts/hardhat.config.ts
index 8ad7f5ffe..722f3e905 100644
--- a/packages/lsp0-contracts/hardhat.config.ts
+++ b/packages/lsp0-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp0-contracts/package.json b/packages/lsp0-contracts/package.json
index 2a0b3a620..caca29e11 100644
--- a/packages/lsp0-contracts/package.json
+++ b/packages/lsp0-contracts/package.json
@@ -49,22 +49,5 @@
"@lukso/lsp14-contracts": "*",
"@lukso/lsp17contractextension-contracts": "*",
"@lukso/lsp20-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^4.9.5"
}
}
diff --git a/packages/lsp1-contracts/hardhat.config.ts b/packages/lsp1-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100755
--- a/packages/lsp1-contracts/hardhat.config.ts
+++ b/packages/lsp1-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp1-contracts/package.json b/packages/lsp1-contracts/package.json
index 71a2d7444..18c720197 100644
--- a/packages/lsp1-contracts/package.json
+++ b/packages/lsp1-contracts/package.json
@@ -42,24 +42,7 @@
"lint:solidity": "solhint 'contracts/**/*.sol' && prettier --check 'contracts/**/*.sol'"
},
"dependencies": {
- "@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "@lukso/lsp2-contracts": "*",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
+ "@openzeppelin/contracts": "^4.9.3",
+ "@lukso/lsp2-contracts": "*"
}
}
diff --git a/packages/lsp10-contracts/hardhat.config.ts b/packages/lsp10-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100755
--- a/packages/lsp10-contracts/hardhat.config.ts
+++ b/packages/lsp10-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp10-contracts/package.json b/packages/lsp10-contracts/package.json
index 7eab4a2d0..2b356faf0 100644
--- a/packages/lsp10-contracts/package.json
+++ b/packages/lsp10-contracts/package.json
@@ -44,23 +44,5 @@
"dependencies": {
"@erc725/smart-contracts": "^6.0.0",
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "@lukso/lsp2-contracts": "*",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp12-contracts/hardhat.config.ts b/packages/lsp12-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp12-contracts/hardhat.config.ts
+++ b/packages/lsp12-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp12-contracts/package.json b/packages/lsp12-contracts/package.json
index ed7329941..af9225f51 100644
--- a/packages/lsp12-contracts/package.json
+++ b/packages/lsp12-contracts/package.json
@@ -43,22 +43,5 @@
},
"dependencies": {
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp14-contracts/hardhat.config.ts b/packages/lsp14-contracts/hardhat.config.ts
index 18a286598..4e12de17e 100755
--- a/packages/lsp14-contracts/hardhat.config.ts
+++ b/packages/lsp14-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp14-contracts/package.json b/packages/lsp14-contracts/package.json
index 85b184ce3..1ec3ba564 100644
--- a/packages/lsp14-contracts/package.json
+++ b/packages/lsp14-contracts/package.json
@@ -44,22 +44,5 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@lukso/lsp1-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp16-contracts/hardhat.config.ts b/packages/lsp16-contracts/hardhat.config.ts
index 79d0fe07a..6a0df5c2a 100644
--- a/packages/lsp16-contracts/hardhat.config.ts
+++ b/packages/lsp16-contracts/hardhat.config.ts
@@ -124,7 +124,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp16-contracts/package.json b/packages/lsp16-contracts/package.json
index 2f2d994c5..c5bedc821 100644
--- a/packages/lsp16-contracts/package.json
+++ b/packages/lsp16-contracts/package.json
@@ -43,25 +43,8 @@
"test:coverage": "hardhat coverage"
},
"dependencies": {
- "@openzeppelin/contracts": "^4.9.2"
- },
- "devDependencies": {
+ "@openzeppelin/contracts": "^4.9.2",
"@erc725/smart-contracts": "^7.0.0",
- "@openzeppelin/contracts-upgradeable": "^4.9.2",
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
+ "@openzeppelin/contracts-upgradeable": "^4.9.2"
}
}
diff --git a/packages/lsp16-contracts/tests/LSP16UniversalFactory.test.ts b/packages/lsp16-contracts/tests/LSP16UniversalFactory.test.ts
index 369f20b51..7195284ba 100644
--- a/packages/lsp16-contracts/tests/LSP16UniversalFactory.test.ts
+++ b/packages/lsp16-contracts/tests/LSP16UniversalFactory.test.ts
@@ -14,6 +14,7 @@ import {
NonPayableContract__factory,
ImplementationTester,
ImplementationTester__factory,
+ FallbackContract,
FallbackInitializer,
FallbackInitializer__factory,
ContractNoConstructor__factory,
@@ -25,6 +26,7 @@ import {
import web3 from 'web3';
import { provider, AddressOffset } from '../../../tests/utils/helpers';
+import { UniversalProfile } from '../../../types';
const AccountBytecode = Account__factory.bytecode;
const NonPayableConstructorBytecode = NonPayableContract__factory.bytecode;
@@ -96,37 +98,37 @@ describe('UniversalFactory contract', () => {
describe('when using deployCreate2', () => {
it('should calculate the address of a non-initializable contract correctly', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const randomAddress = ethers.Wallet.createRandom();
// Set the Owner as the ZeroAddress
const UPBytecode = AccountBytecode + AddressOffset + randomAddress.address.substring(2);
- const bytecodeHash = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode]);
+ const bytecodeHash = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode]);
const calulcatedAddress = await context.universalFactory.computeAddress(
bytecodeHash,
salt,
false,
- [],
+ '0x',
);
const contractCreated = await context.universalFactory
.connect(context.accounts.deployer1)
- .callStatic.deployCreate2(UPBytecode, salt);
+ .deployCreate2.staticCall(UPBytecode, salt);
expect(calulcatedAddress).to.equal(contractCreated);
});
it('should calculate the same address of a contract if the initializeCalldata changed and the contract is not initializable', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const randomAddress = ethers.Wallet.createRandom();
const UPBytecode = AccountBytecode + AddressOffset + randomAddress.address.substr(2);
- const bytecodeHash = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode]);
+ const bytecodeHash = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode]);
const calulcatedAddressSalt1 = await context.universalFactory.computeAddress(
bytecodeHash,
@@ -148,12 +150,12 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a contract if the salt changed', async () => {
- const salt1 = ethers.utils.solidityKeccak256(['string'], ['Salt1']);
- const salt2 = ethers.utils.solidityKeccak256(['string'], ['Salt2']);
+ const salt1 = ethers.solidityPackedKeccak256(['string'], ['Salt1']);
+ const salt2 = ethers.solidityPackedKeccak256(['string'], ['Salt2']);
- const UPBytecode = AccountBytecode + AddressOffset + ethers.constants.AddressZero.substr(2);
+ const UPBytecode = AccountBytecode + AddressOffset + ethers.ZeroAddress.substr(2);
- const bytecodeHash = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode]);
+ const bytecodeHash = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode]);
const calulcatedAddressSalt1 = await context.universalFactory.computeAddress(
bytecodeHash,
@@ -175,17 +177,16 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a contract if the bytecode changed', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
- const UPBytecode1 =
- AccountBytecode + AddressOffset + ethers.constants.AddressZero.substr(2);
+ const UPBytecode1 = AccountBytecode + AddressOffset + ethers.ZeroAddress.substr(2);
- const bytecodeHash1 = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode1]);
+ const bytecodeHash1 = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode1]);
const UPBytecode2 =
AccountBytecode + AddressOffset + 'cafecafecafecafecafecafecafecafecafecafe';
- const bytecodeHash2 = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode2]);
+ const bytecodeHash2 = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode2]);
const calulcatedAddressBytecode1 = await context.universalFactory.computeAddress(
bytecodeHash1,
@@ -207,7 +208,7 @@ describe('UniversalFactory contract', () => {
});
it('should revert when deploying a non-initializable contract with the same bytecode and salt ', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const randomAddress = ethers.Wallet.createRandom();
@@ -221,10 +222,10 @@ describe('UniversalFactory contract', () => {
});
it('should revert when sending value while deploying a non payable non-initializable contract', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['OtherSalt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['OtherSalt']);
const KMBytecode =
- NonPayableConstructorBytecode + AddressOffset + ethers.constants.AddressZero.substr(2);
+ NonPayableConstructorBytecode + AddressOffset + ethers.ZeroAddress.substr(2);
await expect(
context.universalFactory.deployCreate2(KMBytecode, salt, {
@@ -234,11 +235,11 @@ describe('UniversalFactory contract', () => {
});
it('should pass when sending value while deploying a payable non-initializable contract', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['OtherSalt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['OtherSalt']);
const valueSent = 100;
- const contractCreated = await context.universalFactory.callStatic.deployCreate2(
+ const contractCreated = await context.universalFactory.deployCreate2.staticCall(
PayableContract__factory.bytecode,
salt,
{
@@ -250,47 +251,45 @@ describe('UniversalFactory contract', () => {
value: valueSent,
});
- const balance = (await provider.getBalance(contractCreated)).toNumber();
+ const balance = await provider.getBalance(contractCreated);
expect(balance).to.equal(valueSent);
});
it('should deploy an un-initializable contract and get the owner successfully', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const UPBytecode =
AccountBytecode + AddressOffset + context.accounts.deployer3.address.substr(2);
- const contractCreatedAddress = await context.universalFactory.callStatic.deployCreate2(
+ const contractCreatedAddress = await context.universalFactory.deployCreate2.staticCall(
UPBytecode,
salt,
);
- const generatedSalt = await context.universalFactory.callStatic.generateSalt(
- salt,
- false,
- '0x',
- );
+ const generatedSalt = await context.universalFactory.generateSalt(salt, false, '0x');
await expect(context.universalFactory.deployCreate2(UPBytecode, salt))
.to.emit(context.universalFactory, 'ContractCreated')
.withArgs(contractCreatedAddress, salt, generatedSalt, false, '0x');
- const universalProfile = accountConstructor.attach(contractCreatedAddress);
+ const universalProfile = accountConstructor.attach(
+ contractCreatedAddress,
+ ) as UniversalProfile;
- const owner = await universalProfile.callStatic.owner();
+ const owner = await universalProfile.owner();
expect(owner).to.equal(context.accounts.deployer3.address);
});
});
describe('when using deployCreate2AndInitialize', () => {
it('should calculate the address of an initializable contract correctly', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const initializeCallData = implementationTester.interface.encodeFunctionData('initialize', [
- ethers.constants.AddressZero,
+ ethers.ZeroAddress,
]);
- const bytecodeHash = ethers.utils.solidityKeccak256(
+ const bytecodeHash = ethers.solidityPackedKeccak256(
['bytes'],
[ImplementationTester__factory.bytecode],
);
@@ -304,7 +303,7 @@ describe('UniversalFactory contract', () => {
const contractCreated = await context.universalFactory
.connect(context.accounts.deployer1)
- .callStatic.deployCreate2AndInitialize(
+ .deployCreate2AndInitialize.staticCall(
ImplementationTesterBytecode,
salt,
initializeCallData,
@@ -316,12 +315,12 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a contract if the salt changed', async () => {
- const salt1 = ethers.utils.solidityKeccak256(['string'], ['Salt1']);
- const salt2 = ethers.utils.solidityKeccak256(['string'], ['Salt2']);
+ const salt1 = ethers.solidityPackedKeccak256(['string'], ['Salt1']);
+ const salt2 = ethers.solidityPackedKeccak256(['string'], ['Salt2']);
- const UPBytecode = AccountBytecode + AddressOffset + ethers.constants.AddressZero.substr(2);
+ const UPBytecode = AccountBytecode + AddressOffset + ethers.ZeroAddress.substr(2);
- const bytecodeHash = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode]);
+ const bytecodeHash = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode]);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
@@ -347,11 +346,11 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a contract if the initializeCalldata changed', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
- const UPBytecode = AccountBytecode + AddressOffset + ethers.constants.AddressZero.substr(2);
+ const UPBytecode = AccountBytecode + AddressOffset + ethers.ZeroAddress.substr(2);
- const bytecodeHash = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode]);
+ const bytecodeHash = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode]);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
@@ -378,21 +377,20 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a contract if the bytecode changed', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
- const UPBytecode1 =
- AccountBytecode + AddressOffset + ethers.constants.AddressZero.substr(2);
+ const UPBytecode1 = AccountBytecode + AddressOffset + ethers.ZeroAddress.substr(2);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
]);
- const bytecodeHash1 = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode1]);
+ const bytecodeHash1 = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode1]);
const UPBytecode2 =
AccountBytecode + AddressOffset + 'cafecafecafecafecafecafecafecafecafecafe';
- const bytecodeHash2 = ethers.utils.solidityKeccak256(['bytes'], [UPBytecode2]);
+ const bytecodeHash2 = ethers.solidityPackedKeccak256(['bytes'], [UPBytecode2]);
const calulcatedAddressBytecode1 = await context.universalFactory.computeAddress(
bytecodeHash1,
@@ -414,7 +412,7 @@ describe('UniversalFactory contract', () => {
});
it('should revert when deploying an initializable contract with the same bytecode and salt ', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salting']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salting']);
const fallbackInitializerBytecode = FallbackInitializerBytecode;
@@ -438,9 +436,9 @@ describe('UniversalFactory contract', () => {
});
it('should revert when deploying an initializable contract with sending value unmatched to the msgValue arguments', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
- const UPBytecode = AccountBytecode + AddressOffset + ethers.constants.AddressZero.substr(2);
+ const UPBytecode = AccountBytecode + AddressOffset + ethers.ZeroAddress.substr(2);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
@@ -459,15 +457,15 @@ describe('UniversalFactory contract', () => {
});
it('should pass when deploying an initializable contract without passing an initialize calldata', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const fallbackInitializerBytecode = FallbackInitializerBytecode;
const contractCreated =
- await context.universalFactory.callStatic.deployCreate2AndInitialize(
+ await context.universalFactory.deployCreate2AndInitialize.staticCall(
fallbackInitializerBytecode,
salt,
- [], // empty initializeCallData
+ '0x', // empty initializeCallData
0,
0,
);
@@ -475,19 +473,21 @@ describe('UniversalFactory contract', () => {
await context.universalFactory.deployCreate2AndInitialize(
fallbackInitializerBytecode,
salt,
- [], // empty initializeCallData
+ '0x', // empty initializeCallData
0,
0,
);
- const fallbackInitializerCreated = fallbackInitializer.attach(contractCreated);
+ const fallbackInitializerCreated = fallbackInitializer.attach(
+ contractCreated,
+ ) as FallbackInitializer;
- const caller = await fallbackInitializerCreated.callStatic.caller();
- expect(caller).to.equal(context.universalFactory.address);
+ const caller = await fallbackInitializerCreated.caller();
+ expect(caller).to.equal(await context.universalFactory.getAddress());
});
it('should pass when deploying an initializable contract that constructor and initialize function is payable', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const PayableTrueCalldata = payableContract.interface.encodeFunctionData('payableTrue');
@@ -497,7 +497,7 @@ describe('UniversalFactory contract', () => {
const contractCreated = await context.universalFactory
.connect(context.accounts.deployer1)
- .callStatic.deployCreate2AndInitialize(
+ .deployCreate2AndInitialize.staticCall(
PayableContract__factory.bytecode,
salt,
PayableTrueCalldata,
@@ -517,19 +517,19 @@ describe('UniversalFactory contract', () => {
{ value: sumValueSent },
);
- const balance = (await provider.getBalance(contractCreated)).toNumber();
+ const balance = await provider.getBalance(contractCreated);
expect(balance).to.equal(sumValueSent);
});
it('should deploy an initializable CREATE2 contract and emit the event and get the owner successfully', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const initializeCallData = implementationTester.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
]);
const contractCreatedAddress =
- await context.universalFactory.callStatic.deployCreate2AndInitialize(
+ await context.universalFactory.deployCreate2AndInitialize.staticCall(
ImplementationTesterBytecode,
salt,
initializeCallData,
@@ -537,7 +537,7 @@ describe('UniversalFactory contract', () => {
0,
);
- const generatedSalt = await context.universalFactory.callStatic.generateSalt(
+ const generatedSalt = await context.universalFactory.generateSalt(
salt,
true,
initializeCallData,
@@ -555,18 +555,20 @@ describe('UniversalFactory contract', () => {
.to.emit(context.universalFactory, 'ContractCreated')
.withArgs(contractCreatedAddress, salt, generatedSalt, true, initializeCallData);
- const factoryTesterContract = implementationTester.attach(contractCreatedAddress);
- const owner = await factoryTesterContract.callStatic.owner();
+ const factoryTesterContract = implementationTester.attach(
+ contractCreatedAddress,
+ ) as ImplementationTester;
+ const owner = await factoryTesterContract.owner();
expect(owner).to.equal(context.accounts.deployer1.address);
});
});
describe('when using deployERC1167Proxy', () => {
it("should calculate the address of a proxy correctly if it's not initializable", async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const calculatedAddress = await context.universalFactory.computeERC1167Address(
- contractNoConstructor.address,
+ await contractNoConstructor.getAddress(),
salt,
false,
'0x',
@@ -574,24 +576,24 @@ describe('UniversalFactory contract', () => {
const contractCreated = await context.universalFactory
.connect(context.accounts.deployer1)
- .callStatic.deployERC1167Proxy(contractNoConstructor.address, salt);
+ .deployERC1167Proxy.staticCall(contractNoConstructor.target, salt);
expect(calculatedAddress).to.equal(contractCreated);
});
it('should calculate a different address of a proxy if the `salt` changed', async () => {
- const salt1 = ethers.utils.solidityKeccak256(['string'], ['Salt1']);
- const salt2 = ethers.utils.solidityKeccak256(['string'], ['Salt2']);
+ const salt1 = ethers.solidityPackedKeccak256(['string'], ['Salt1']);
+ const salt2 = ethers.solidityPackedKeccak256(['string'], ['Salt2']);
const calculatedAddressSalt1 = await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt1,
false,
'0x',
);
const calculatedAddressSalt2 = await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt2,
false,
'0x',
@@ -603,7 +605,7 @@ describe('UniversalFactory contract', () => {
});
it("should calculate the same address of a proxy if the initializeCalldata changed (because it's not initializable)", async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
@@ -611,7 +613,7 @@ describe('UniversalFactory contract', () => {
const calculatedAddressInitializableTrue =
await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
false,
initializeCallData,
@@ -619,7 +621,7 @@ describe('UniversalFactory contract', () => {
const calculatedAddressInitializableFalse =
await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
false,
'0xaabb',
@@ -632,17 +634,17 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a proxy if the `baseContract` changed', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const calulcatedAddressBaseContract1 = await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
false,
'0x',
);
const calulcatedAddressBaseContract2 = await context.universalFactory.computeERC1167Address(
- contractNoConstructor.address,
+ await contractNoConstructor.getAddress(),
salt,
false,
'0x',
@@ -654,50 +656,48 @@ describe('UniversalFactory contract', () => {
});
it('should revert when deploying a proxy contract with the same `baseContract` and salt ', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
- await context.universalFactory.deployERC1167Proxy(accountBaseContract.address, salt);
+ await context.universalFactory.deployERC1167Proxy(accountBaseContract.target, salt);
await expect(
- context.universalFactory.deployERC1167Proxy(accountBaseContract.address, salt),
+ context.universalFactory.deployERC1167Proxy(accountBaseContract.target, salt),
).to.be.revertedWith('ERC1167: create2 failed');
});
it('should deploy an un-initializable CREATE2 proxy contract and emit the event and get the default owner successfully', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt#2']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt#2']);
- const contractCreatedAddress = await context.universalFactory.callStatic.deployERC1167Proxy(
- accountBaseContract.address,
+ const contractCreatedAddress = await context.universalFactory.deployERC1167Proxy.staticCall(
+ accountBaseContract.target,
salt,
);
- const generatedSalt = await context.universalFactory.callStatic.generateSalt(
- salt,
- false,
- '0x',
- );
+ const generatedSalt = await context.universalFactory.generateSalt(salt, false, '0x');
- await expect(context.universalFactory.deployERC1167Proxy(accountBaseContract.address, salt))
+ await expect(context.universalFactory.deployERC1167Proxy(accountBaseContract.target, salt))
.to.emit(context.universalFactory, 'ContractCreated')
.withArgs(contractCreatedAddress, salt, generatedSalt, false, '0x');
- const universalProfile = accountBaseContract.attach(contractCreatedAddress);
+ const universalProfile = accountBaseContract.attach(
+ contractCreatedAddress,
+ ) as UniversalProfile;
- const owner = await universalProfile.callStatic.owner();
- expect(owner).to.equal(ethers.constants.AddressZero);
+ const owner = await universalProfile.owner();
+ expect(owner).to.equal(ethers.ZeroAddress);
});
});
describe('when using deployERC1167ProxyAndInitialize', () => {
it("should calculate the address of a proxy correctly if it's initializable", async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
]);
const calculatedAddress = await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
true,
initializeCallData,
@@ -705,8 +705,8 @@ describe('UniversalFactory contract', () => {
const contractCreated = await context.universalFactory
.connect(context.accounts.deployer1)
- .callStatic.deployERC1167ProxyAndInitialize(
- accountBaseContract.address,
+ .deployERC1167ProxyAndInitialize.staticCall(
+ accountBaseContract.target,
salt,
initializeCallData,
);
@@ -715,22 +715,22 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a proxy if the `salt` changed', async () => {
- const salt1 = ethers.utils.solidityKeccak256(['string'], ['Salt1']);
- const salt2 = ethers.utils.solidityKeccak256(['string'], ['Salt2']);
+ const salt1 = ethers.solidityPackedKeccak256(['string'], ['Salt1']);
+ const salt2 = ethers.solidityPackedKeccak256(['string'], ['Salt2']);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
]);
const calculatedAddressSalt1 = await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt1,
true,
initializeCallData,
);
const calculatedAddressSalt2 = await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt2,
true,
initializeCallData,
@@ -742,7 +742,7 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a proxy if the `initializeCallData` changed', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const initializeCallData1 = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
@@ -754,7 +754,7 @@ describe('UniversalFactory contract', () => {
const calulcatedAddressinitializeCallData1 =
await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
true,
initializeCallData1,
@@ -762,7 +762,7 @@ describe('UniversalFactory contract', () => {
const calulcatedAddressinitializeCallData2 =
await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
true,
initializeCallData2,
@@ -775,21 +775,21 @@ describe('UniversalFactory contract', () => {
});
it('should calculate a different address of a proxy if the `baseContract` changed', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
]);
const calulcatedAddressBaseContract1 = await context.universalFactory.computeERC1167Address(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
true,
initializeCallData,
);
const calulcatedAddressBaseContract2 = await context.universalFactory.computeERC1167Address(
- contractNoConstructor.address,
+ await contractNoConstructor.getAddress(),
salt,
true,
initializeCallData,
@@ -801,21 +801,21 @@ describe('UniversalFactory contract', () => {
});
it('should revert when deploying a proxy contract with the same `baseContract` and salt ', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
]);
await context.universalFactory.deployERC1167ProxyAndInitialize(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
initializeCallData,
);
await expect(
context.universalFactory.deployERC1167ProxyAndInitialize(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
initializeCallData,
),
@@ -823,53 +823,55 @@ describe('UniversalFactory contract', () => {
});
it('should pass and initialize local variable when sending value while deploying a CREATE2 proxy without `initializeCallData`', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const contractCreated =
- await context.universalFactory.callStatic.deployERC1167ProxyAndInitialize(
- fallbackInitializer.address,
+ await context.universalFactory.deployERC1167ProxyAndInitialize.staticCall(
+ fallbackInitializer.target,
salt,
'0x',
{
- value: ethers.utils.parseEther('1300'),
+ value: ethers.parseEther('1300'),
},
);
await context.universalFactory
.connect(context.accounts.deployer1)
- .deployERC1167ProxyAndInitialize(fallbackInitializer.address, salt, '0x', {
- value: ethers.utils.parseEther('1300'),
+ .deployERC1167ProxyAndInitialize(fallbackInitializer.target, salt, '0x', {
+ value: ethers.parseEther('1300'),
});
- const fallbackInitializerCreated = fallbackInitializer.attach(contractCreated);
+ const fallbackInitializerCreated = fallbackInitializer.attach(
+ contractCreated,
+ ) as FallbackInitializer;
- const caller = await fallbackInitializerCreated.callStatic.caller();
- expect(caller).to.equal(context.universalFactory.address);
+ const caller = await fallbackInitializerCreated.caller();
+ expect(caller).to.equal(await context.universalFactory.getAddress());
});
it('should revert when deploying a proxy and sending value to a non payable function in deployERC1167Proxy', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const PayableFalseCalldata = payableContract.interface.encodeFunctionData('payableFalse');
await expect(
context.universalFactory
.connect(context.accounts.deployer1)
- .deployERC1167ProxyAndInitialize(payableContract.address, salt, PayableFalseCalldata, {
+ .deployERC1167ProxyAndInitialize(payableContract.target, salt, PayableFalseCalldata, {
value: 100,
}),
).to.be.revertedWithCustomError(context.universalFactory, 'ContractInitializationFailed');
});
it('should pass when deploying a proxy and sending value to a payable function in deployERC1167Proxy', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const PayableTrueCalldata = payableContract.interface.encodeFunctionData('payableTrue');
const contractCreated = await context.universalFactory
.connect(context.accounts.deployer1)
- .callStatic.deployERC1167ProxyAndInitialize(
- payableContract.address,
+ .deployERC1167ProxyAndInitialize.staticCall(
+ payableContract.target,
salt,
PayableTrueCalldata,
);
@@ -878,53 +880,53 @@ describe('UniversalFactory contract', () => {
await context.universalFactory
.connect(context.accounts.deployer1)
- .deployERC1167ProxyAndInitialize(payableContract.address, salt, PayableTrueCalldata, {
+ .deployERC1167ProxyAndInitialize(payableContract.target, salt, PayableTrueCalldata, {
value: valueSent,
});
- const balance = (await provider.getBalance(contractCreated)).toNumber();
+ const balance = await provider.getBalance(contractCreated);
expect(balance).to.equal(valueSent);
});
it("should revert when deploying a proxy and passing calldata for a non-existing function where fallback function doesn't exist", async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const RandomCalldata = '0xcafecafe';
await expect(
context.universalFactory
.connect(context.accounts.deployer1)
- .deployERC1167ProxyAndInitialize(payableContract.address, salt, RandomCalldata),
+ .deployERC1167ProxyAndInitialize(payableContract.target, salt, RandomCalldata),
).to.be.revertedWithCustomError(context.universalFactory, 'ContractInitializationFailed');
});
it('should pass when deploying a proxy and passing calldata for a non-existing function where fallback function exist', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt']);
const RandomCalldata = '0xcafecafe';
await expect(
context.universalFactory
.connect(context.accounts.deployer1)
- .deployERC1167ProxyAndInitialize(fallbackContract.address, salt, RandomCalldata),
+ .deployERC1167ProxyAndInitialize(fallbackContract.target, salt, RandomCalldata),
).to.not.be.reverted;
});
it('should deploy an initializable CREATE2 proxy contract and emit the event and get the owner successfully', async () => {
- const salt = ethers.utils.solidityKeccak256(['string'], ['Salt#3']);
+ const salt = ethers.solidityPackedKeccak256(['string'], ['Salt#3']);
const initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer4.address,
]);
const contractCreatedAddress =
- await context.universalFactory.callStatic.deployERC1167ProxyAndInitialize(
- accountBaseContract.address,
+ await context.universalFactory.deployERC1167ProxyAndInitialize.staticCall(
+ accountBaseContract.target,
salt,
initializeCallData,
);
- const generatedSalt = await context.universalFactory.callStatic.generateSalt(
+ const generatedSalt = await context.universalFactory.generateSalt(
salt,
true,
initializeCallData,
@@ -932,7 +934,7 @@ describe('UniversalFactory contract', () => {
await expect(
context.universalFactory.deployERC1167ProxyAndInitialize(
- accountBaseContract.address,
+ accountBaseContract.target,
salt,
initializeCallData,
),
@@ -940,9 +942,11 @@ describe('UniversalFactory contract', () => {
.to.emit(context.universalFactory, 'ContractCreated')
.withArgs(contractCreatedAddress, salt, generatedSalt, true, initializeCallData);
- const universalProfile = accountBaseContract.attach(contractCreatedAddress);
+ const universalProfile = accountBaseContract.attach(
+ contractCreatedAddress,
+ ) as UniversalProfile;
- const owner = await universalProfile.callStatic.owner();
+ const owner = await universalProfile.owner();
expect(owner).to.equal(context.accounts.deployer4.address);
});
});
@@ -953,15 +957,15 @@ describe('UniversalFactory contract', () => {
let initializeCallData;
let contractCreatedWithdeployERC1167ProxyAndInitialize;
before(async () => {
- salt = ethers.utils.solidityKeccak256(['string'], ['SaltEdge']);
+ salt = ethers.solidityPackedKeccak256(['string'], ['SaltEdge']);
initializeCallData = accountBaseContract.interface.encodeFunctionData('initialize', [
context.accounts.deployer1.address,
]);
contractCreatedWithdeployERC1167ProxyAndInitialize =
- await context.universalFactory.callStatic.deployERC1167ProxyAndInitialize(
- accountBaseContract.address,
+ await context.universalFactory.deployERC1167ProxyAndInitialize.staticCall(
+ accountBaseContract.target,
salt,
initializeCallData,
);
@@ -969,8 +973,8 @@ describe('UniversalFactory contract', () => {
it('should result in a different address if deployed without initializing with deployERC1167Proxy function', async () => {
const contractCreatedWithdeployERC1167Proxy =
- await context.universalFactory.callStatic.deployERC1167Proxy(
- accountBaseContract.address,
+ await context.universalFactory.deployERC1167Proxy.staticCall(
+ accountBaseContract.target,
salt,
);
@@ -988,11 +992,11 @@ describe('UniversalFactory contract', () => {
// deploy proxy contract
const proxyBytecode = eip1167RuntimeCodeTemplate.replace(
'bebebebebebebebebebebebebebebebebebebebe',
- accountBaseContract.address.substr(2),
+ (accountBaseContract.target as string).substring(2),
);
const contractCreatedWithDeployCreate2 =
- await context.universalFactory.callStatic.deployCreate2(proxyBytecode, salt);
+ await context.universalFactory.deployCreate2.staticCall(proxyBytecode, salt);
const equalAddresses =
contractCreatedWithdeployERC1167ProxyAndInitialize == contractCreatedWithDeployCreate2;
@@ -1006,11 +1010,11 @@ describe('UniversalFactory contract', () => {
// deploy proxy contract
const proxyBytecode = eip1167RuntimeCodeTemplate.replace(
'bebebebebebebebebebebebebebebebebebebebe',
- accountBaseContract.address.substr(2),
+ (accountBaseContract.target as string).substring(2),
);
const contractCreatedWithdeployCreate2AndInitialize =
- await context.universalFactory.callStatic.deployCreate2AndInitialize(
+ await context.universalFactory.deployCreate2AndInitialize.staticCall(
proxyBytecode,
salt,
initializeCallData,
@@ -1028,14 +1032,14 @@ describe('UniversalFactory contract', () => {
});
describe('`generateSalt(...)`', () => {
- it('should generate the same salt as with `ethers.utils.keccak256`', async () => {
+ it('should generate the same salt as with `ethers.keccak256`', async () => {
const providedSalt = '0x7d1f4b76de4cdffc4ebac16883d3a7c9cbd95b6130494c4ad48e6a8e24083572';
const initializeCallData =
'0xc4d66de8000000000000000000000000d208a16f18a3bab276dff0b62ef591a846c86cba';
- const generatedSalt = ethers.utils.keccak256(
- ethers.utils.solidityPack(
+ const generatedSalt = ethers.keccak256(
+ ethers.solidityPacked(
['bool', 'bytes', 'bytes32'],
[true, initializeCallData, providedSalt],
),
@@ -1046,14 +1050,14 @@ describe('UniversalFactory contract', () => {
).to.equal(generatedSalt);
});
- it('should generate the same salt as with `web3.utils.keccak256`', async () => {
+ it('should generate the same salt as with `web3.keccak256`', async () => {
const providedSalt = '0x7d1f4b76de4cdffc4ebac16883d3a7c9cbd95b6130494c4ad48e6a8e24083572';
const initializeCallData =
'0xc4d66de8000000000000000000000000d208a16f18a3bab276dff0b62ef591a846c86cba';
- const generatedSalt = web3.utils.keccak256(
- ethers.utils.solidityPack(
+ const generatedSalt = ethers.keccak256(
+ ethers.solidityPacked(
['bool', 'bytes', 'bytes32'],
[true, initializeCallData, providedSalt],
),
diff --git a/packages/lsp17-contracts/hardhat.config.ts b/packages/lsp17-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp17-contracts/hardhat.config.ts
+++ b/packages/lsp17-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp17-contracts/package.json b/packages/lsp17-contracts/package.json
index 431e6ce9c..56fdb2c9c 100644
--- a/packages/lsp17-contracts/package.json
+++ b/packages/lsp17-contracts/package.json
@@ -48,22 +48,5 @@
"@lukso/lsp14-contracts": "*",
"@lukso/lsp17contractextension-contracts": "*",
"@lukso/lsp20-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp17contractextension-contracts/hardhat.config.ts b/packages/lsp17contractextension-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp17contractextension-contracts/hardhat.config.ts
+++ b/packages/lsp17contractextension-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp17contractextension-contracts/package.json b/packages/lsp17contractextension-contracts/package.json
index 9f93c5a5b..7f4960912 100644
--- a/packages/lsp17contractextension-contracts/package.json
+++ b/packages/lsp17contractextension-contracts/package.json
@@ -44,22 +44,5 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp1delegate-contracts/hardhat.config.ts b/packages/lsp1delegate-contracts/hardhat.config.ts
index e927704b5..515203eae 100644
--- a/packages/lsp1delegate-contracts/hardhat.config.ts
+++ b/packages/lsp1delegate-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp1delegate-contracts/package.json b/packages/lsp1delegate-contracts/package.json
index b448bfe4c..99191dee9 100644
--- a/packages/lsp1delegate-contracts/package.json
+++ b/packages/lsp1delegate-contracts/package.json
@@ -50,22 +50,5 @@
"@lukso/lsp8-contracts": "*",
"@lukso/lsp9-contracts": "*",
"@lukso/lsp10-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp2-contracts/hardhat.config.ts b/packages/lsp2-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100755
--- a/packages/lsp2-contracts/hardhat.config.ts
+++ b/packages/lsp2-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp2-contracts/package.json b/packages/lsp2-contracts/package.json
index e12b14587..2b878115b 100644
--- a/packages/lsp2-contracts/package.json
+++ b/packages/lsp2-contracts/package.json
@@ -47,22 +47,5 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.6.2",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp2-contracts/tests/LSP2UtilsLibrary.test.ts b/packages/lsp2-contracts/tests/LSP2UtilsLibrary.test.ts
index e17dadaf2..3b93fd750 100644
--- a/packages/lsp2-contracts/tests/LSP2UtilsLibrary.test.ts
+++ b/packages/lsp2-contracts/tests/LSP2UtilsLibrary.test.ts
@@ -1,6 +1,6 @@
import { expect } from 'chai';
import { ethers } from 'hardhat';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
import { LSP2UtilsLibraryTester, LSP2UtilsLibraryTester__factory } from '../types';
import { encodeCompactBytesArray } from '../../../tests/utils/helpers';
diff --git a/packages/lsp20-contracts/hardhat.config.ts b/packages/lsp20-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100755
--- a/packages/lsp20-contracts/hardhat.config.ts
+++ b/packages/lsp20-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp20-contracts/package.json b/packages/lsp20-contracts/package.json
index 8d85aae2d..1173a1add 100644
--- a/packages/lsp20-contracts/package.json
+++ b/packages/lsp20-contracts/package.json
@@ -40,22 +40,5 @@
"format": "prettier --write .",
"lint": "eslint . --ext .ts,.js",
"lint:solidity": "solhint 'contracts/**/*.sol' && prettier --check 'contracts/**/*.sol'"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp23-contracts/hardhat.config.ts b/packages/lsp23-contracts/hardhat.config.ts
index 8de2a6bcc..8377906b9 100644
--- a/packages/lsp23-contracts/hardhat.config.ts
+++ b/packages/lsp23-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp23-contracts/package.json b/packages/lsp23-contracts/package.json
index 59d38cb64..13f0970cb 100644
--- a/packages/lsp23-contracts/package.json
+++ b/packages/lsp23-contracts/package.json
@@ -44,22 +44,5 @@
"@erc725/smart-contracts": "^7.0.0",
"@openzeppelin/contracts": "^4.9.3",
"@lukso/universalprofile-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp25-contracts/hardhat.config.ts b/packages/lsp25-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp25-contracts/hardhat.config.ts
+++ b/packages/lsp25-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp25-contracts/package.json b/packages/lsp25-contracts/package.json
index 1e4b82529..db329c0f1 100644
--- a/packages/lsp25-contracts/package.json
+++ b/packages/lsp25-contracts/package.json
@@ -45,22 +45,5 @@
},
"dependencies": {
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.6.2",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp25-contracts/tests/LSP25MultiChannelNonce.test.ts b/packages/lsp25-contracts/tests/LSP25MultiChannelNonce.test.ts
index 846480f22..607d6253d 100644
--- a/packages/lsp25-contracts/tests/LSP25MultiChannelNonce.test.ts
+++ b/packages/lsp25-contracts/tests/LSP25MultiChannelNonce.test.ts
@@ -49,7 +49,7 @@ describe('LSP25MultiChannelNonce', () => {
payload: '0xcafecafe',
};
- const encodedMessage = ethers.utils.solidityPack(
+ const encodedMessage = ethers.solidityPacked(
['uint256', 'uint256', 'uint256', 'uint256', 'uint256', 'bytes'],
[
LSP25_VERSION,
@@ -62,7 +62,7 @@ describe('LSP25MultiChannelNonce', () => {
);
const { signature } = await eip191Signer.signDataWithIntendedValidator(
- contract.address,
+ contract.target as string,
encodedMessage,
signerPrivateKey,
);
@@ -87,7 +87,7 @@ describe('LSP25MultiChannelNonce', () => {
payload: '0xcafecafe',
};
- const encodedMessage = ethers.utils.solidityPack(
+ const encodedMessage = ethers.solidityPacked(
['uint256', 'uint256', 'uint256', 'uint256', 'uint256', 'bytes'],
[
12345, // incorrect version number
@@ -100,7 +100,7 @@ describe('LSP25MultiChannelNonce', () => {
);
const { signature } = await eip191Signer.signDataWithIntendedValidator(
- contract.address,
+ contract.target as string,
encodedMessage,
signerPrivateKey,
);
@@ -123,7 +123,7 @@ describe('LSP25MultiChannelNonce', () => {
payload: '0xcafecafe',
};
- const encodedMessage = ethers.utils.solidityPack(
+ const encodedMessage = ethers.solidityPacked(
['uint256', 'uint256', 'uint256', 'uint256', 'uint256', 'bytes'],
[
12345, // incorrect version number
@@ -136,7 +136,7 @@ describe('LSP25MultiChannelNonce', () => {
);
const { signature } = await eip191Signer.signDataWithIntendedValidator(
- contract.address,
+ contract.target as string,
encodedMessage,
signerPrivateKey,
);
diff --git a/packages/lsp3-contracts/hardhat.config.ts b/packages/lsp3-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp3-contracts/hardhat.config.ts
+++ b/packages/lsp3-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp3-contracts/package.json b/packages/lsp3-contracts/package.json
index 836896417..8fc02ea96 100644
--- a/packages/lsp3-contracts/package.json
+++ b/packages/lsp3-contracts/package.json
@@ -42,22 +42,5 @@
},
"dependencies": {
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp4-contracts/hardhat.config.ts b/packages/lsp4-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp4-contracts/hardhat.config.ts
+++ b/packages/lsp4-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp4-contracts/package.json b/packages/lsp4-contracts/package.json
index 3a8d26323..b15277820 100644
--- a/packages/lsp4-contracts/package.json
+++ b/packages/lsp4-contracts/package.json
@@ -44,22 +44,5 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp5-contracts/hardhat.config.ts b/packages/lsp5-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp5-contracts/hardhat.config.ts
+++ b/packages/lsp5-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp5-contracts/package.json b/packages/lsp5-contracts/package.json
index a0d660bee..b446f2546 100644
--- a/packages/lsp5-contracts/package.json
+++ b/packages/lsp5-contracts/package.json
@@ -44,23 +44,5 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@lukso/lsp2-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "@lukso/lsp2-contracts": "*",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp6-contracts/hardhat.config.ts b/packages/lsp6-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp6-contracts/hardhat.config.ts
+++ b/packages/lsp6-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp6-contracts/package.json b/packages/lsp6-contracts/package.json
index 9008d64f4..12ea99a47 100644
--- a/packages/lsp6-contracts/package.json
+++ b/packages/lsp6-contracts/package.json
@@ -51,22 +51,5 @@
"@lukso/lsp17contractextension-contracts": "*",
"@lukso/lsp20-contracts": "*",
"@lukso/lsp25-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp7-contracts/hardhat.config.ts b/packages/lsp7-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp7-contracts/hardhat.config.ts
+++ b/packages/lsp7-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp7-contracts/package.json b/packages/lsp7-contracts/package.json
index fb5ac9bfd..a1a1a1351 100644
--- a/packages/lsp7-contracts/package.json
+++ b/packages/lsp7-contracts/package.json
@@ -46,22 +46,5 @@
"@openzeppelin/contracts": "^4.9.3",
"@lukso/lsp1-contracts": "*",
"@lukso/lsp17contractextension-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp8-contracts/hardhat.config.ts b/packages/lsp8-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp8-contracts/hardhat.config.ts
+++ b/packages/lsp8-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp8-contracts/package.json b/packages/lsp8-contracts/package.json
index 9b242bad4..2efe3d8c3 100644
--- a/packages/lsp8-contracts/package.json
+++ b/packages/lsp8-contracts/package.json
@@ -48,22 +48,5 @@
"@lukso/lsp2-contracts": "*",
"@lukso/lsp4-contracts": "*",
"@lukso/lsp17contractextension-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/lsp9-contracts/hardhat.config.ts b/packages/lsp9-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/lsp9-contracts/hardhat.config.ts
+++ b/packages/lsp9-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/lsp9-contracts/package.json b/packages/lsp9-contracts/package.json
index 7e52d70b0..021e351c6 100644
--- a/packages/lsp9-contracts/package.json
+++ b/packages/lsp9-contracts/package.json
@@ -46,22 +46,5 @@
"@openzeppelin/contracts": "^4.9.3",
"@lukso/lsp1-contracts": "*",
"@lukso/lsp6-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/packages/universalprofile-contracts/hardhat.config.ts b/packages/universalprofile-contracts/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/packages/universalprofile-contracts/hardhat.config.ts
+++ b/packages/universalprofile-contracts/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/packages/universalprofile-contracts/package.json b/packages/universalprofile-contracts/package.json
index d60a07535..4524f97f1 100644
--- a/packages/universalprofile-contracts/package.json
+++ b/packages/universalprofile-contracts/package.json
@@ -45,22 +45,5 @@
"@openzeppelin/contracts": "^4.9.3",
"@lukso/lsp0-contracts": "*",
"@lukso/lsp3-contracts": "*"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/scripts/ci/check-deployer-balance.ts b/scripts/ci/check-deployer-balance.ts
index 930a90dbe..19d62ab9a 100644
--- a/scripts/ci/check-deployer-balance.ts
+++ b/scripts/ci/check-deployer-balance.ts
@@ -20,7 +20,7 @@ task(
// the CI deploys all the contracts, so we need to make sure that the deployer has enough balance
// each contract to deploy costs around 0.02 - 0.03 LYXe
- const MINIMUM_DEPLOYER_BALANCE = ethers.utils.parseUnits('0.1', 'ether');
+ const MINIMUM_DEPLOYER_BALANCE = ethers.parseUnits('0.1', 'ether');
const deployerAddress = wallet.address;
@@ -28,9 +28,9 @@ task(
// via `npx hardhat verify-balance --network `
const deployerBalance = await hre.ethers.provider.getBalance(deployerAddress);
- if (deployerBalance.lt(MINIMUM_DEPLOYER_BALANCE)) {
+ if (deployerBalance < MINIMUM_DEPLOYER_BALANCE) {
throw new Error(
- `❌ Deployer balance is too low: ${ethers.utils.formatEther(
+ `❌ Deployer balance is too low: ${ethers.formatEther(
deployerBalance,
)} LYXe left. Please fund the deployer address ${deployerAddress} on LUKSO Testnet.`,
);
@@ -38,7 +38,7 @@ task(
console.log(
`✅ Deployer balance sufficient to deploy + verify contracts on LUKSO Testnet.
Deployer address: ${deployerAddress}
- Balance: ${ethers.utils.formatEther(deployerBalance)} LYXe`,
+ Balance: ${ethers.formatEther(deployerBalance)} LYXe`,
);
}
});
diff --git a/scripts/ci/docs-generate.ts b/scripts/ci/docs-generate.ts
index da9dafee3..f736a607e 100644
--- a/scripts/ci/docs-generate.ts
+++ b/scripts/ci/docs-generate.ts
@@ -2,7 +2,7 @@ import fs from 'fs';
import path from 'path';
import { task } from 'hardhat/config';
import { TASK_COMPILE } from 'hardhat/builtin-tasks/task-names';
-import { ethers } from 'ethers';
+import { keccak256, toUtf8Bytes } from 'ethers';
import pluralize from 'pluralize';
import { mkdir, rm, stat, writeFile } from 'fs/promises';
import { CompilerOutputContract } from 'hardhat/types';
@@ -239,7 +239,7 @@ task('ts-gen', 'Generate NatSpec documentation automatically on compilation')
} = allMembers;
for (const [sig, member] of Object.entries(allMembers)) {
- const hash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(sig));
+ const hash = keccak256(toUtf8Bytes(sig));
member.hash = member.type === 'event' ? hash : hash.slice(0, 10);
}
diff --git a/template/hardhat.config.ts b/template/hardhat.config.ts
index d818a205d..1f9e172b9 100644
--- a/template/hardhat.config.ts
+++ b/template/hardhat.config.ts
@@ -118,7 +118,7 @@ const config: HardhatUserConfig = {
},
typechain: {
outDir: 'types',
- target: 'ethers-v5',
+ target: 'ethers-v6',
},
mocha: {
timeout: 10000000,
diff --git a/template/package.json b/template/package.json
index a387b38d1..6fde925c6 100644
--- a/template/package.json
+++ b/template/package.json
@@ -40,22 +40,5 @@
"dependencies": {
"@erc725/smart-contracts": "^7.0.0",
"@openzeppelin/contracts": "^4.9.3"
- },
- "devDependencies": {
- "@nomicfoundation/hardhat-toolbox": "^2.0.2",
- "@typechain/ethers-v5": "^10.2.0",
- "dotenv": "^16.0.3",
- "eslint-config-custom": "*",
- "ethers": "^5.7.2",
- "hardhat": "^2.13.0",
- "hardhat-contract-sizer": "^2.8.0",
- "hardhat-deploy": "^0.11.25",
- "hardhat-gas-reporter": "^1.0.9",
- "hardhat-packager": "^1.4.2",
- "solhint": "^3.3.6",
- "ts-node": "^10.2.0",
- "tsconfig": "*",
- "typechain": "^8.0.0",
- "typescript": "^5.3.3"
}
}
diff --git a/tests/Benchmark.test.ts b/tests/Benchmark.test.ts
index 66561425a..419e08423 100644
--- a/tests/Benchmark.test.ts
+++ b/tests/Benchmark.test.ts
@@ -1,7 +1,7 @@
import fs from 'fs';
import { ethers } from 'hardhat';
import { expect } from 'chai';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
import {
LSP7Mintable,
@@ -26,20 +26,19 @@ import {
combinePermissions,
encodeCompactBytesArray,
} from './utils/helpers';
-import { BigNumber } from 'ethers';
export type UniversalProfileContext = {
accounts: SignerWithAddress[];
mainController: SignerWithAddress;
universalProfile: UniversalProfile;
- initialFunding?: BigNumber;
+ initialFunding?: bigint;
};
function generateRandomData(length) {
- return ethers.utils.hexlify(ethers.utils.randomBytes(length));
+ return ethers.hexlify(ethers.randomBytes(length));
}
-const buildLSP6TestContext = async (initialFunding?: BigNumber): Promise => {
+const buildLSP6TestContext = async (initialFunding?: bigint): Promise => {
const accounts = await ethers.getSigners();
const mainController = accounts[0];
@@ -57,7 +56,7 @@ const buildLSP6TestContext = async (initialFunding?: BigNumber): Promise => {
const accounts = await ethers.getSigners();
const mainController = accounts[0];
@@ -154,7 +153,7 @@ describe('⛽📊 Gas Benchmark', () => {
describe('execute', () => {
describe('execute Single', () => {
before(async () => {
- context = await buildUniversalProfileContext(ethers.utils.parseEther('50'));
+ context = await buildUniversalProfileContext(ethers.parseEther('50'));
});
it('Transfer 1 LYX to an EOA without data', async () => {
@@ -163,7 +162,7 @@ describe('⛽📊 Gas Benchmark', () => {
.execute(
OPERATION_TYPES.CALL,
context.accounts[1].address,
- ethers.utils.parseEther('1'),
+ ethers.parseEther('1'),
'0x',
);
@@ -178,8 +177,8 @@ describe('⛽📊 Gas Benchmark', () => {
.connect(context.mainController)
.execute(
OPERATION_TYPES.CALL,
- context.universalProfile.address,
- ethers.utils.parseEther('1'),
+ await context.universalProfile.getAddress(),
+ ethers.parseEther('1'),
'0x',
);
@@ -195,7 +194,7 @@ describe('⛽📊 Gas Benchmark', () => {
.execute(
OPERATION_TYPES.CALL,
context.accounts[1].address,
- ethers.utils.parseEther('1'),
+ ethers.parseEther('1'),
generateRandomData(256),
);
@@ -210,8 +209,8 @@ describe('⛽📊 Gas Benchmark', () => {
.connect(context.mainController)
.execute(
OPERATION_TYPES.CALL,
- context.universalProfile.address,
- ethers.utils.parseEther('1'),
+ await context.universalProfile.getAddress(),
+ ethers.parseEther('1'),
ethers.utils.hexConcat(['0x00000000', generateRandomData(252)]),
);
@@ -226,7 +225,7 @@ describe('⛽📊 Gas Benchmark', () => {
let universalProfile1: UniversalProfile, universalProfile2, universalProfile3;
before(async () => {
- context = await buildUniversalProfileContext(ethers.utils.parseEther('50'));
+ context = await buildUniversalProfileContext(ethers.parseEther('50'));
universalProfile1 = await new UniversalProfile__factory(context.mainController).deploy(
context.accounts[2].address,
@@ -251,11 +250,7 @@ describe('⛽📊 Gas Benchmark', () => {
context.accounts[2].address,
context.accounts[3].address,
],
- [
- ethers.utils.parseEther('0.1'),
- ethers.utils.parseEther('0.1'),
- ethers.utils.parseEther('0.1'),
- ],
+ [ethers.parseEther('0.1'), ethers.parseEther('0.1'), ethers.parseEther('0.1')],
['0x', '0x', '0x'],
);
@@ -271,11 +266,7 @@ describe('⛽📊 Gas Benchmark', () => {
.executeBatch(
[OPERATION_TYPES.CALL, OPERATION_TYPES.CALL, OPERATION_TYPES.CALL],
[universalProfile1.address, universalProfile2.address, universalProfile3.address],
- [
- ethers.utils.parseEther('0.1'),
- ethers.utils.parseEther('0.1'),
- ethers.utils.parseEther('0.1'),
- ],
+ [ethers.parseEther('0.1'), ethers.parseEther('0.1'), ethers.parseEther('0.1')],
['0x', '0x', '0x'],
);
@@ -295,11 +286,7 @@ describe('⛽📊 Gas Benchmark', () => {
context.accounts[2].address,
context.accounts[3].address,
],
- [
- ethers.utils.parseEther('0.1'),
- ethers.utils.parseEther('0.1'),
- ethers.utils.parseEther('0.1'),
- ],
+ [ethers.parseEther('0.1'), ethers.parseEther('0.1'), ethers.parseEther('0.1')],
[generateRandomData(256), generateRandomData(256), generateRandomData(256)],
);
@@ -320,11 +307,7 @@ describe('⛽📊 Gas Benchmark', () => {
.executeBatch(
[OPERATION_TYPES.CALL, OPERATION_TYPES.CALL, OPERATION_TYPES.CALL],
[universalProfile1.address, universalProfile2.address, universalProfile3.address],
- [
- ethers.utils.parseEther('0.1'),
- ethers.utils.parseEther('0.1'),
- ethers.utils.parseEther('0.1'),
- ],
+ [ethers.parseEther('0.1'), ethers.parseEther('0.1'), ethers.parseEther('0.1')],
[random256BytesData, random256BytesData, random256BytesData],
);
@@ -339,11 +322,11 @@ describe('⛽📊 Gas Benchmark', () => {
describe('setData', () => {
describe('setData Single', () => {
before(async () => {
- context = await buildUniversalProfileContext(ethers.utils.parseEther('50'));
+ context = await buildUniversalProfileContext(ethers.parseEther('50'));
});
it('Set a 20 bytes long value', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('My Key'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('My Key'));
const value = generateRandomData(20);
const tx = await context.universalProfile.setData(key, value);
@@ -355,7 +338,7 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Set a 60 bytes long value', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('My Other Key'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('My Other Key'));
const value = generateRandomData(60);
const tx = await context.universalProfile.setData(key, value);
@@ -367,7 +350,7 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Set a 160 bytes long value', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('My Third Key'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('My Third Key'));
const value = generateRandomData(160);
const tx = await context.universalProfile.setData(key, value);
@@ -379,7 +362,7 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Set a 300 bytes long value', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('My Fourth Key'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('My Fourth Key'));
const value = generateRandomData(300);
const tx = await context.universalProfile.setData(key, value);
@@ -391,7 +374,7 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Set a 600 bytes long value', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('My Fifth Key'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('My Fifth Key'));
const value = generateRandomData(600);
const tx = await context.universalProfile.setData(key, value);
@@ -403,7 +386,7 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Change the value of a data key already set', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('My Fifth Key'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('My Fifth Key'));
const value1 = generateRandomData(20);
const value2 = generateRandomData(20);
@@ -418,7 +401,7 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Remove the value of a data key already set', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('My Fifth Key'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('My Fifth Key'));
const value = generateRandomData(20);
await context.universalProfile.setData(key, value);
@@ -434,14 +417,14 @@ describe('⛽📊 Gas Benchmark', () => {
describe('setData Array', () => {
before(async () => {
- context = await buildUniversalProfileContext(ethers.utils.parseEther('50'));
+ context = await buildUniversalProfileContext(ethers.parseEther('50'));
});
it('Set 2 data keys of 20 bytes long value', async () => {
- const key1 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key1'));
+ const key1 = ethers.keccak256(ethers.toUtf8Bytes('Key1'));
const value1 = generateRandomData(20);
- const key2 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key2'));
+ const key2 = ethers.keccak256(ethers.toUtf8Bytes('Key2'));
const value2 = generateRandomData(20);
const tx = await context.universalProfile.setDataBatch([key1, key2], [value1, value2]);
@@ -453,10 +436,10 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Set 2 data keys of 100 bytes long value', async () => {
- const key1 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key3'));
+ const key1 = ethers.keccak256(ethers.toUtf8Bytes('Key3'));
const value1 = generateRandomData(100);
- const key2 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key4'));
+ const key2 = ethers.keccak256(ethers.toUtf8Bytes('Key4'));
const value2 = generateRandomData(100);
const tx = await context.universalProfile.setDataBatch([key1, key2], [value1, value2]);
@@ -468,13 +451,13 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Set 3 data keys of 20 bytes long value', async () => {
- const key1 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key5'));
+ const key1 = ethers.keccak256(ethers.toUtf8Bytes('Key5'));
const value1 = generateRandomData(20);
- const key2 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key6'));
+ const key2 = ethers.keccak256(ethers.toUtf8Bytes('Key6'));
const value2 = generateRandomData(20);
- const key3 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key7'));
+ const key3 = ethers.keccak256(ethers.toUtf8Bytes('Key7'));
const value3 = generateRandomData(20);
const tx = await context.universalProfile.setDataBatch(
@@ -489,13 +472,13 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Change the value of three data keys already set of 20 bytes long value', async () => {
- const key1 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key8'));
+ const key1 = ethers.keccak256(ethers.toUtf8Bytes('Key8'));
const value1 = generateRandomData(20);
- const key2 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key9'));
+ const key2 = ethers.keccak256(ethers.toUtf8Bytes('Key9'));
const value2 = generateRandomData(20);
- const key3 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key10'));
+ const key3 = ethers.keccak256(ethers.toUtf8Bytes('Key10'));
const value3 = generateRandomData(20);
await context.universalProfile.setDataBatch([key1, key2, key3], [value1, value2, value3]);
@@ -512,13 +495,13 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Remove the value of three data keys already set', async () => {
- const key1 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key11'));
+ const key1 = ethers.keccak256(ethers.toUtf8Bytes('Key11'));
const value1 = generateRandomData(20);
- const key2 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key12'));
+ const key2 = ethers.keccak256(ethers.toUtf8Bytes('Key12'));
const value2 = generateRandomData(20);
- const key3 = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Key13'));
+ const key3 = ethers.keccak256(ethers.toUtf8Bytes('Key13'));
const value3 = generateRandomData(20);
await context.universalProfile.setDataBatch([key1, key2, key3], [value1, value2, value3]);
@@ -542,7 +525,7 @@ describe('⛽📊 Gas Benchmark', () => {
let universalProfile1;
before(async () => {
- context = await buildUniversalProfileContext(ethers.utils.parseEther('50'));
+ context = await buildUniversalProfileContext(ethers.parseEther('50'));
// deploy a LSP7 token
lsp7Token = await new LSP7Mintable__factory(context.mainController).deploy(
'Token',
@@ -568,7 +551,12 @@ describe('⛽📊 Gas Benchmark', () => {
describe('LSP7DigitalAsset', () => {
it('when minting LSP7Token to a UP without data', async () => {
- const tx = await lsp7Token.mint(context.universalProfile.address, 20, false, '0x');
+ const tx = await lsp7Token.mint(
+ await context.universalProfile.getAddress(),
+ 20,
+ false,
+ '0x',
+ );
const receipt = await tx.wait();
@@ -587,7 +575,7 @@ describe('⛽📊 Gas Benchmark', () => {
it('when transferring LSP7Token from a UP to a UP without data', async () => {
const lsp7TransferPayload = lsp7Token.interface.encodeFunctionData('transfer', [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
universalProfile1.address,
5,
false,
@@ -615,7 +603,7 @@ describe('⛽📊 Gas Benchmark', () => {
it('when minting LSP8Token to a UP without data', async () => {
const tx = await lsp8Token.mint(
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
metaNFTList[0],
false,
'0x',
@@ -638,7 +626,7 @@ describe('⛽📊 Gas Benchmark', () => {
it('when transferring LSP8Token from a UP to a UP without data', async () => {
const lsp8TransferPayload = lsp8Token.interface.encodeFunctionData('transfer', [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
universalProfile1.address,
metaNFTList[0],
false,
@@ -678,7 +666,7 @@ describe('⛽📊 Gas Benchmark', () => {
];
before(async () => {
- context = await buildLSP6TestContext(ethers.utils.parseEther('50'));
+ context = await buildLSP6TestContext(ethers.parseEther('50'));
recipientEOA = context.accounts[1];
const deployedContracts = await setupProfileWithKeyManagerWithURD(context.accounts[2]);
@@ -716,16 +704,16 @@ describe('⛽📊 Gas Benchmark', () => {
);
// mint some tokens to the UP
- await lsp7MetaCoin.mint(context.universalProfile.address, 1000, false, '0x');
+ await lsp7MetaCoin.mint(await context.universalProfile.getAddress(), 1000, false, '0x');
// mint some NFTs to the UP
nftList.forEach(async (nft) => {
- await lsp8MetaNFT.mint(context.universalProfile.address, nft, false, '0x');
+ await lsp8MetaNFT.mint(await context.universalProfile.getAddress(), nft, false, '0x');
});
});
it('transfer some LYXes to an EOA', async () => {
- const lyxAmount = ethers.utils.parseEther('3');
+ const lyxAmount = ethers.parseEther('3');
// prettier-ignore
const tx = await context.universalProfile.connect(context.mainController).execute(OPERATION_TYPES.CALL, recipientEOA.address, lyxAmount, "0x");
@@ -737,7 +725,7 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('transfers some LYXes to a UP', async () => {
- const lyxAmount = ethers.utils.parseEther('3');
+ const lyxAmount = ethers.parseEther('3');
// prettier-ignore
const tx = await context.universalProfile.connect(context.mainController).execute(OPERATION_TYPES.CALL, aliceUP.address, lyxAmount, "0x");
@@ -757,7 +745,7 @@ describe('⛽📊 Gas Benchmark', () => {
lsp7MetaCoin.address,
0,
lsp7MetaCoin.interface.encodeFunctionData("transfer", [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
recipientEOA.address,
tokenAmount,
true,
@@ -780,7 +768,7 @@ describe('⛽📊 Gas Benchmark', () => {
lsp7MetaCoin.address,
0,
lsp7MetaCoin.interface.encodeFunctionData("transfer", [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
aliceUP.address,
tokenAmount,
true,
@@ -803,7 +791,7 @@ describe('⛽📊 Gas Benchmark', () => {
lsp8MetaNFT.address,
0,
lsp8MetaNFT.interface.encodeFunctionData("transfer", [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
recipientEOA.address,
nftId,
true,
@@ -826,7 +814,7 @@ describe('⛽📊 Gas Benchmark', () => {
lsp8MetaNFT.address,
0,
lsp8MetaNFT.interface.encodeFunctionData("transfer", [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
aliceUP.address,
nftId,
false,
@@ -872,7 +860,7 @@ describe('⛽📊 Gas Benchmark', () => {
];
before(async () => {
- context = await buildLSP6TestContext(ethers.utils.parseEther('50'));
+ context = await buildLSP6TestContext(ethers.parseEther('50'));
recipientEOA = context.accounts[1];
@@ -904,7 +892,7 @@ describe('⛽📊 Gas Benchmark', () => {
);
[lsp7MetaCoin, lsp7LyxDai].forEach(async (token) => {
- await token.mint(context.universalProfile.address, 1000, false, '0x');
+ await token.mint(await context.universalProfile.getAddress(), 1000, false, '0x');
});
// LSP8 NFT transfer scenarios
@@ -932,7 +920,7 @@ describe('⛽📊 Gas Benchmark', () => {
].forEach(async (nftContract) => {
// mint some NFTs to the UP
nftContract.tokenIds.forEach(async (nft) => {
- await lsp8MetaNFT.mint(context.universalProfile.address, nft, false, '0x');
+ await lsp8MetaNFT.mint(await context.universalProfile.getAddress(), nft, false, '0x');
});
});
@@ -1010,7 +998,7 @@ describe('⛽📊 Gas Benchmark', () => {
lsp7MetaCoin.address,
0,
lsp7MetaCoin.interface.encodeFunctionData("transfer", [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
recipientEOA.address,
tokenAmount,
true,
@@ -1033,7 +1021,7 @@ describe('⛽📊 Gas Benchmark', () => {
lsp7MetaCoin.address,
0,
lsp7MetaCoin.interface.encodeFunctionData("transfer", [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
aliceUP.address,
tokenAmount,
true,
@@ -1056,7 +1044,7 @@ describe('⛽📊 Gas Benchmark', () => {
lsp8MetaNFT.address,
0,
lsp8MetaNFT.interface.encodeFunctionData("transfer", [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
recipientEOA.address,
nftId,
true,
@@ -1079,7 +1067,7 @@ describe('⛽📊 Gas Benchmark', () => {
lsp8MetaNFT.address,
0,
lsp8MetaNFT.interface.encodeFunctionData("transfer", [
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
aliceUP.address,
nftId,
false,
@@ -1101,23 +1089,23 @@ describe('⛽📊 Gas Benchmark', () => {
let controllerToAddEditAndRemove: SignerWithAddress;
const allowedERC725YDataKeys = [
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key1')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key2')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key3')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key4')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key5')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key6')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key7')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key8')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key9')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('key10')),
+ ethers.keccak256(ethers.toUtf8Bytes('key1')),
+ ethers.keccak256(ethers.toUtf8Bytes('key2')),
+ ethers.keccak256(ethers.toUtf8Bytes('key3')),
+ ethers.keccak256(ethers.toUtf8Bytes('key4')),
+ ethers.keccak256(ethers.toUtf8Bytes('key5')),
+ ethers.keccak256(ethers.toUtf8Bytes('key6')),
+ ethers.keccak256(ethers.toUtf8Bytes('key7')),
+ ethers.keccak256(ethers.toUtf8Bytes('key8')),
+ ethers.keccak256(ethers.toUtf8Bytes('key9')),
+ ethers.keccak256(ethers.toUtf8Bytes('key10')),
];
// Fictional scenario of a NFT Marketplace dApp
const nftMarketplaceDataKeys = [
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('NFT Marketplace dApp - settings')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('NFT Marketplace dApp - followers')),
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes('NFT Marketplace dApp - rewards')),
+ ethers.keccak256(ethers.toUtf8Bytes('NFT Marketplace dApp - settings')),
+ ethers.keccak256(ethers.toUtf8Bytes('NFT Marketplace dApp - followers')),
+ ethers.keccak256(ethers.toUtf8Bytes('NFT Marketplace dApp - rewards')),
];
before(async () => {
@@ -1135,7 +1123,7 @@ describe('⛽📊 Gas Benchmark', () => {
const permissionValues = [
// Set some JSONURL for LSP3Profile metadata to test gas cost of updating your profile details
'0x6f357c6a70546a2accab18748420b63c63b5af4cf710848ae83afc0c51dd8ad17fb5e8b3697066733a2f2f516d65637247656a555156587057347a53393438704e76636e51724a314b69416f4d36626466725663575a736e35',
- ethers.utils.hexZeroPad(ethers.BigNumber.from(3).toHexString(), 16),
+ ethers.zeroPadValue(ethers.toBigInt(3).toHexString(), 16),
context.mainController.address,
];
@@ -1175,14 +1163,14 @@ describe('⛽📊 Gas Benchmark', () => {
// prettier-ignore
const dataKeys = [
ERC725YDataKeys.LSP6["AddressPermissions[]"].length,
- ERC725YDataKeys.LSP6["AddressPermissions[]"].index + ethers.utils.hexZeroPad(ethers.utils.hexStripZeros(AddressPermissionsArrayLength), 16).substring(2),
+ ERC725YDataKeys.LSP6["AddressPermissions[]"].index + ethers.zeroPadValue(ethers.utils.hexStripZeros(AddressPermissionsArrayLength), 16).substring(2),
ERC725YDataKeys.LSP6["AddressPermissions:Permissions"] + newController.address.substring(2),
ERC725YDataKeys.LSP6["AddressPermissions:AllowedERC725YDataKeys"] + newController.address.substring(2),
];
// prettier-ignore
const dataValues = [
- ethers.utils.hexZeroPad(ethers.BigNumber.from(AddressPermissionsArrayLength).add(1).toHexString(), 16),
+ ethers.zeroPadValue(ethers.toBigInt(AddressPermissionsArrayLength).add(1).toHexString(), 16),
newController.address,
combinePermissions(PERMISSIONS.SETDATA),
encodeCompactBytesArray([
@@ -1242,14 +1230,14 @@ describe('⛽📊 Gas Benchmark', () => {
// prettier-ignore
const dataKeys = [
ERC725YDataKeys.LSP6["AddressPermissions[]"].length,
- ERC725YDataKeys.LSP6["AddressPermissions[]"].index + ethers.utils.hexZeroPad(ethers.utils.hexStripZeros(AddressPermissionsArrayLength), 16).substring(2),
+ ERC725YDataKeys.LSP6["AddressPermissions[]"].index + ethers.zeroPadValue(ethers.utils.hexStripZeros(AddressPermissionsArrayLength), 16).substring(2),
ERC725YDataKeys.LSP6["AddressPermissions:Permissions"] + newController.address.substring(2),
ERC725YDataKeys.LSP6["AddressPermissions:AllowedERC725YDataKeys"] + newController.address.substring(2),
];
// prettier-ignore
const dataValues = [
- ethers.utils.hexZeroPad(ethers.BigNumber.from(AddressPermissionsArrayLength).sub(1).toHexString(), 16),
+ ethers.zeroPadValue(ethers.toBigInt(AddressPermissionsArrayLength).sub(1).toHexString(), 16),
"0x",
"0x",
"0x",
@@ -1364,14 +1352,16 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Set 2x data keys + add 3x new controllers (including setting the array length + indexes under AddressPermissions[index]) - 12 data keys in total', async () => {
- const addressPermissionsArrayLength = ethers.BigNumber.from(
- await context.universalProfile.getData(
- ERC725YDataKeys.LSP6['AddressPermissions[]'].length,
- ),
- ).toNumber();
-
- const newArrayLengthUint128Hex = ethers.utils.hexZeroPad(
- ethers.BigNumber.from(addressPermissionsArrayLength).add(3).toHexString(),
+ const addressPermissionsArrayLength = ethers
+ .toBigInt(
+ await context.universalProfile.getData(
+ ERC725YDataKeys.LSP6['AddressPermissions[]'].length,
+ ),
+ )
+ .toNumber();
+
+ const newArrayLengthUint128Hex = ethers.zeroPadValue(
+ ethers.toBigInt(addressPermissionsArrayLength).add(3).toHexString(),
16,
);
@@ -1408,7 +1398,7 @@ describe('⛽📊 Gas Benchmark', () => {
const dataValues = [
// user settings
- ethers.utils.hexlify(ethers.utils.toUtf8Bytes('Some default user settings to start')),
+ ethers.hexlify(ethers.toUtf8Bytes('Some default user settings to start')),
// followers count starts at 0
abiCoder.encode(['uint256'], [0]),
newArrayLengthUint128Hex,
@@ -1471,7 +1461,7 @@ describe('⛽📊 Gas Benchmark', () => {
const permissionValues = [
// Set some JSONURL for LSP3Profile metadata to test gas cost of updating your profile details
'0x6f357c6a70546a2accab18748420b63c63b5af4cf710848ae83afc0c51dd8ad17fb5e8b3697066733a2f2f516d65637247656a555156587057347a53393438704e76636e51724a314b69416f4d36626466725663575a736e35',
- ethers.utils.hexZeroPad(ethers.BigNumber.from(6).toHexString(), 16),
+ ethers.zeroPadValue(ethers.toBigInt(6).toHexString(), 16),
context.mainController.address,
PERMISSIONS.SETDATA,
encodeCompactBytesArray([
@@ -1525,14 +1515,14 @@ describe('⛽📊 Gas Benchmark', () => {
// prettier-ignore
const dataKeys = [
ERC725YDataKeys.LSP6["AddressPermissions[]"].length,
- ERC725YDataKeys.LSP6["AddressPermissions[]"].index + ethers.utils.hexZeroPad(ethers.utils.hexStripZeros(AddressPermissionsArrayLength), 16).substring(2),
+ ERC725YDataKeys.LSP6["AddressPermissions[]"].index + ethers.zeroPadValue(ethers.utils.hexStripZeros(AddressPermissionsArrayLength), 16).substring(2),
ERC725YDataKeys.LSP6["AddressPermissions:Permissions"] + newController.address.substring(2),
ERC725YDataKeys.LSP6["AddressPermissions:AllowedERC725YDataKeys"] + newController.address.substring(2),
];
// prettier-ignore
const dataValues = [
- ethers.utils.hexZeroPad(ethers.BigNumber.from(AddressPermissionsArrayLength).add(1).toHexString(), 16),
+ ethers.zeroPadValue(ethers.toBigInt(AddressPermissionsArrayLength).add(1).toHexString(), 16),
newController.address,
combinePermissions(PERMISSIONS.SETDATA),
encodeCompactBytesArray([
@@ -1592,14 +1582,14 @@ describe('⛽📊 Gas Benchmark', () => {
// prettier-ignore
const dataKeys = [
ERC725YDataKeys.LSP6["AddressPermissions[]"].length,
- ERC725YDataKeys.LSP6["AddressPermissions[]"].index + ethers.utils.hexZeroPad(ethers.BigNumber.from(AddressPermissionsArrayLength).sub(1).toHexString(), 16).substring(2),
+ ERC725YDataKeys.LSP6["AddressPermissions[]"].index + ethers.zeroPadValue(ethers.toBigInt(AddressPermissionsArrayLength).sub(1).toHexString(), 16).substring(2),
ERC725YDataKeys.LSP6["AddressPermissions:Permissions"] + newController.address.substring(2),
ERC725YDataKeys.LSP6["AddressPermissions:AllowedERC725YDataKeys"] + newController.address.substring(2),
];
// prettier-ignore
const dataValues = [
- ethers.utils.hexZeroPad(ethers.BigNumber.from(AddressPermissionsArrayLength).sub(1).toHexString(), 16),
+ ethers.zeroPadValue(ethers.toBigInt(AddressPermissionsArrayLength).sub(1).toHexString(), 16),
"0x",
"0x",
"0x",
@@ -1714,14 +1704,16 @@ describe('⛽📊 Gas Benchmark', () => {
});
it('Set 2x data keys + add 3x new controllers (including setting the array length + indexes under AddressPermissions[index]) - 12 data keys in total', async () => {
- const addressPermissionsArrayLength = ethers.BigNumber.from(
- await context.universalProfile.getData(
- ERC725YDataKeys.LSP6['AddressPermissions[]'].length,
- ),
- ).toNumber();
-
- const newArrayLengthUint128Hex = ethers.utils.hexZeroPad(
- ethers.BigNumber.from(addressPermissionsArrayLength).add(3).toHexString(),
+ const addressPermissionsArrayLength = ethers
+ .toBigInt(
+ await context.universalProfile.getData(
+ ERC725YDataKeys.LSP6['AddressPermissions[]'].length,
+ ),
+ )
+ .toNumber();
+
+ const newArrayLengthUint128Hex = ethers.zeroPadValue(
+ ethers.toBigInt(addressPermissionsArrayLength).add(3).toHexString(),
16,
);
@@ -1758,7 +1750,7 @@ describe('⛽📊 Gas Benchmark', () => {
const dataValues = [
// user settings
- ethers.utils.hexlify(ethers.utils.toUtf8Bytes('Some default user settings to start')),
+ ethers.hexlify(ethers.toUtf8Bytes('Some default user settings to start')),
// followers count starts at 0
abiCoder.encode(['uint256'], [0]),
newArrayLengthUint128Hex,
diff --git a/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecovery.behaviour.ts b/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecovery.behaviour.ts
index 17a58d747..a5c3b3edb 100644
--- a/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecovery.behaviour.ts
+++ b/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecovery.behaviour.ts
@@ -1,7 +1,6 @@
import { ethers } from 'hardhat';
import { expect } from 'chai';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
-import type { TransactionResponse } from '@ethersproject/abstract-provider';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
import { LSP11BasicSocialRecovery, LSP6KeyManager, UniversalProfile } from '../../types';
@@ -9,6 +8,7 @@ import { ERC725YDataKeys, INTERFACE_IDS } from '../../constants';
import { ALL_PERMISSIONS } from '@lukso/lsp6-contracts';
import { callPayload } from '../utils/fixtures';
+import { ContractTransactionResponse } from 'ethers';
export type LSP11TestAccounts = {
owner: SignerWithAddress;
@@ -73,7 +73,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise {
it('Should revert when non-owner calls `setRecoverySecretHash(..)`', async () => {
const txParams = {
- hash: ethers.utils.solidityKeccak256(['string'], ['LUKSO']),
+ hash: ethers.solidityPackedKeccak256(['string'], ['LUKSO']),
};
await expect(
@@ -102,7 +102,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise {
const txParams = {
- hash: ethers.utils.solidityKeccak256(['string'], ['LUKSO']),
+ hash: ethers.solidityPackedKeccak256(['string'], ['LUKSO']),
};
const payload = context.lsp11BasicSocialRecovery.interface.encodeFunctionData(
@@ -125,7 +125,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise {
const txParams = {
secret: 'NotLUKSO',
- newHash: ethers.utils.solidityKeccak256(['string'], ['UniversalProfiles']),
+ newHash: ethers.solidityPackedKeccak256(['string'], ['UniversalProfiles']),
};
await expect(
@@ -181,14 +181,15 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise {
txParams = {
secret: 'LUKSO',
- newHash: ethers.utils.solidityKeccak256(['string'], ['UniversalProfiles']),
+ newHash: ethers.solidityPackedKeccak256(['string'], ['UniversalProfiles']),
};
recoveryCounterBeforeRecovery =
- await context.lsp11BasicSocialRecovery.callStatic.getRecoveryCounter();
+ await context.lsp11BasicSocialRecovery.getRecoveryCounter();
recoveryTx = await context.lsp11BasicSocialRecovery
.connect(context.accounts.addressASelected)
@@ -201,13 +202,15 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise {
const recoveryCounterAfterRecovery =
- await context.lsp11BasicSocialRecovery.callStatic.getRecoveryCounter();
+ await context.lsp11BasicSocialRecovery.getRecoveryCounter();
- expect(recoveryCounterAfterRecovery).to.equal(recoveryCounterBeforeRecovery.add(1));
+ expect(recoveryCounterAfterRecovery).to.equal(
+ ethers.toNumber(recoveryCounterBeforeRecovery) + 1,
+ );
});
it('should emit RecoveryProcessSuccessful event', async () => {
- const guardians = await context.lsp11BasicSocialRecovery.callStatic.getGuardians();
+ const guardians = await context.lsp11BasicSocialRecovery.getGuardians();
expect(recoveryTx)
.to.emit(context.lsp11BasicSocialRecovery, 'RecoveryProcessSuccessful')
@@ -230,16 +233,14 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise {
it('should pass', async () => {
const txParams = {
- key: ethers.utils.solidityKeccak256(['string'], ['MyKey']),
- value: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('I have access')),
+ key: ethers.solidityPackedKeccak256(['string'], ['MyKey']),
+ value: ethers.hexlify(ethers.toUtf8Bytes('I have access')),
};
const payload = context.universalProfile.interface.encodeFunctionData('setData', [
@@ -262,7 +263,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise Promise Promise Promise Promise Promise {
const txParams = {
- hash: ethers.utils.solidityKeccak256(['string'], ['LUKSO']),
+ hash: ethers.solidityPackedKeccak256(['string'], ['LUKSO']),
};
await expect(
@@ -429,7 +429,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise {
const txParams = {
- hash: ethers.utils.solidityKeccak256(['string'], ['LUKSO']),
+ hash: ethers.solidityPackedKeccak256(['string'], ['LUKSO']),
};
const payload = context.lsp11BasicSocialRecovery.interface.encodeFunctionData(
@@ -443,7 +443,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise Promise Promise Promise Promise {
it('should revert with ThresholdCannotBeHigherThanGuardiansNumber error', async () => {
- const guardians = await context.lsp11BasicSocialRecovery.callStatic.getGuardians();
+ const guardians = await context.lsp11BasicSocialRecovery.getGuardians();
expect(guardians.length).to.equal(1);
@@ -552,7 +552,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise {
it('should pass', async () => {
- const guardians = await context.lsp11BasicSocialRecovery.callStatic.getGuardians();
+ const guardians = await context.lsp11BasicSocialRecovery.getGuardians();
expect(guardians.length).to.equal(1);
@@ -586,7 +586,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise {
it('should pass', async () => {
- const guardians = await context.lsp11BasicSocialRecovery.callStatic.getGuardians();
+ const guardians = await context.lsp11BasicSocialRecovery.getGuardians();
expect(guardians.length).to.equal(1);
@@ -621,7 +620,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise Promise {
- guardians = await context.lsp11BasicSocialRecovery.callStatic.getGuardians();
- guardiansThreshold =
- await context.lsp11BasicSocialRecovery.callStatic.getGuardiansThreshold();
+ guardians = await context.lsp11BasicSocialRecovery.getGuardians();
+ guardiansThreshold = await context.lsp11BasicSocialRecovery.getGuardiansThreshold();
expect(guardians.length).to.equal(guardiansThreshold);
});
@@ -662,7 +659,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise Promise {
before('Checking guardians and add few more', async () => {
// Checking that guardian1 address is set
- const isAddress1Guardian = await context.lsp11BasicSocialRecovery.callStatic.isGuardian(
+ const isAddress1Guardian = await context.lsp11BasicSocialRecovery.isGuardian(
context.accounts.guardian1.address,
);
@@ -737,31 +734,31 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise Promise Promise {
// Checks that recoveryCounter equal 0 before recovery
- beforeRecoveryCounter =
- await context.lsp11BasicSocialRecovery.callStatic.getRecoveryCounter();
+ beforeRecoveryCounter = await context.lsp11BasicSocialRecovery.getRecoveryCounter();
expect(beforeRecoveryCounter).to.equal(0);
@@ -847,18 +839,17 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise Promise Promise Promise Promise Promise {
const txParams = {
secret: plainSecret,
- newHash: ethers.utils.solidityKeccak256(['string'], ['NotLUKSO']),
+ newHash: ethers.solidityPackedKeccak256(['string'], ['NotLUKSO']),
};
await expect(
@@ -976,7 +967,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise {
const txParams = {
secret: 'NotTheValidPlainSecret',
- newHash: ethers.utils.solidityKeccak256(['string'], ['NotLUKSO']),
+ newHash: ethers.solidityPackedKeccak256(['string'], ['NotLUKSO']),
};
await expect(
@@ -997,7 +988,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise {
newPlainSecret = 'UniversalProfiles';
- newSecretHash = ethers.utils.solidityKeccak256(['string'], [newPlainSecret]);
+ newSecretHash = ethers.solidityPackedKeccak256(['string'], [newPlainSecret]);
const txParams = {
secret: plainSecret,
@@ -1020,15 +1011,14 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise {
- const afterRecoveryCounter =
- await context.lsp11BasicSocialRecovery.callStatic.getRecoveryCounter();
+ const afterRecoveryCounter = await context.lsp11BasicSocialRecovery.getRecoveryCounter();
- expect(afterRecoveryCounter).to.equal(beforeRecoveryCounter + 1);
+ expect(afterRecoveryCounter).to.equal(ethers.toNumber(beforeRecoveryCounter) + 1);
});
it('should update the recoverySecretHash ', async () => {
@@ -1048,16 +1038,14 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise {
it('should pass', async () => {
const txParams = {
- key: ethers.utils.solidityKeccak256(['string'], ['MyKey']),
- value: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('I have access')),
+ key: ethers.solidityPackedKeccak256(['string'], ['MyKey']),
+ value: ethers.hexlify(ethers.toUtf8Bytes('I have access')),
};
const payload = context.universalProfile.interface.encodeFunctionData('setData', [
@@ -1080,7 +1068,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise Promise {
it('should be reset', async () => {
- const guardian1Choice = await context.lsp11BasicSocialRecovery.callStatic.getGuardianChoice(
+ const guardian1Choice = await context.lsp11BasicSocialRecovery.getGuardianChoice(
context.accounts.guardian1.address,
);
- expect(guardian1Choice).to.equal(ethers.constants.AddressZero);
+ expect(guardian1Choice).to.equal(ethers.ZeroAddress);
- const guardian2Choice = await context.lsp11BasicSocialRecovery.callStatic.getGuardianChoice(
+ const guardian2Choice = await context.lsp11BasicSocialRecovery.getGuardianChoice(
context.accounts.guardian2.address,
);
- expect(guardian2Choice).to.equal(ethers.constants.AddressZero);
+ expect(guardian2Choice).to.equal(ethers.ZeroAddress);
});
});
});
@@ -1108,7 +1096,7 @@ export const shouldBehaveLikeLSP11 = (buildContext: () => Promise {
it('Should have registered the ERC165 interface', async () => {
- expect(
- await context.lsp11BasicSocialRecovery.callStatic.supportsInterface(INTERFACE_IDS.ERC165),
- ).to.be.true;
+ expect(await context.lsp11BasicSocialRecovery.supportsInterface(INTERFACE_IDS.ERC165)).to.be
+ .true;
});
it('Should have registered the LSP11 interface', async () => {
expect(
- await context.lsp11BasicSocialRecovery.callStatic.supportsInterface(
+ await context.lsp11BasicSocialRecovery.supportsInterface(
INTERFACE_IDS.LSP11BasicSocialRecovery,
),
).to.be.true;
});
it('Should have set the owner', async () => {
- const owner = await context.lsp11BasicSocialRecovery.callStatic.owner();
- expect(owner).to.equal(context.deployParams.owner.address);
+ const owner = await context.lsp11BasicSocialRecovery.owner();
+ expect(owner).to.equal(await context.deployParams.owner.getAddress());
});
it('Should have set the linked target', async () => {
- const target = await context.lsp11BasicSocialRecovery.callStatic.target();
- expect(target).to.equal(context.deployParams.target.address);
+ const target = await context.lsp11BasicSocialRecovery['target()']();
+ expect(target).to.equal(await context.deployParams.target.getAddress());
});
});
};
diff --git a/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecovery.test.ts b/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecovery.test.ts
index bd3b8366a..728d6ede4 100644
--- a/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecovery.test.ts
+++ b/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecovery.test.ts
@@ -30,13 +30,13 @@ describe('LSP11BasicSocialRecovery with constructor', () => {
const lsp11BasicSocialRecovery = await new LSP11BasicSocialRecovery__factory(
accounts.any,
- ).deploy(deployParams.owner.address, deployParams.target.address);
+ ).deploy(await deployParams.owner.getAddress(), await deployParams.target.getAddress());
await grantLSP11PermissionViaKeyManager(
accounts.owner,
universalProfile,
lsp6KeyManager,
- lsp11BasicSocialRecovery.address,
+ await lsp11BasicSocialRecovery.getAddress(),
);
return {
@@ -59,7 +59,7 @@ describe('LSP11BasicSocialRecovery with constructor', () => {
return {
lsp11BasicSocialRecovery,
deployParams,
- initializeTransaction: context.lsp11BasicSocialRecovery.deployTransaction,
+ initializeTransaction: context.lsp11BasicSocialRecovery.deploymentTransaction(),
};
});
});
diff --git a/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecoveryInit.test.ts b/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecoveryInit.test.ts
index 944b78b46..686f84632 100644
--- a/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecoveryInit.test.ts
+++ b/tests/LSP11BasicSocialRecovery/LSP11BasicSocialRecoveryInit.test.ts
@@ -4,6 +4,7 @@ import {
LSP6KeyManager,
UniversalProfile,
LSP11BasicSocialRecoveryInit__factory,
+ LSP11BasicSocialRecovery,
} from '../../types';
import {
@@ -38,19 +39,19 @@ describe('LSP11BasicSocialRecoveryInit with proxy', () => {
).deploy();
const lsp11BasicSocialRecoveryProxy = await deployProxy(
- lsp11BasicSocialRecoveryInit.address,
+ await lsp11BasicSocialRecoveryInit.getAddress(),
accounts.owner,
);
const lsp11BasicSocialRecovery = lsp11BasicSocialRecoveryInit.attach(
lsp11BasicSocialRecoveryProxy,
- );
+ ) as unknown as LSP11BasicSocialRecovery;
await grantLSP11PermissionViaKeyManager(
accounts.owner,
universalProfile,
lsp6KeyManager,
- lsp11BasicSocialRecovery.address,
+ await lsp11BasicSocialRecovery.getAddress(),
);
return {
@@ -64,8 +65,8 @@ describe('LSP11BasicSocialRecoveryInit with proxy', () => {
const initializeProxy = async (context: LSP11TestContext) => {
return context.lsp11BasicSocialRecovery['initialize(address,address)'](
- context.deployParams.owner.address,
- context.deployParams.target.address,
+ await context.deployParams.owner.getAddress(),
+ await context.deployParams.target.getAddress(),
);
};
diff --git a/tests/LSP14Ownable2Step/LSP14Ownable2Step.behaviour.ts b/tests/LSP14Ownable2Step/LSP14Ownable2Step.behaviour.ts
index 97f2b1ea7..47c2f3fa4 100644
--- a/tests/LSP14Ownable2Step/LSP14Ownable2Step.behaviour.ts
+++ b/tests/LSP14Ownable2Step/LSP14Ownable2Step.behaviour.ts
@@ -1,7 +1,7 @@
import { expect } from 'chai';
import { ethers, network, artifacts } from 'hardhat';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
import {
LSP9Vault,
UPWithInstantAcceptOwnership__factory,
@@ -13,7 +13,7 @@ import { OPERATION_TYPES } from '@lukso/lsp0-contracts';
// helpers
import { provider } from '../utils/helpers';
-import { BigNumber, ContractTransaction } from 'ethers';
+import { ContractTransaction, ContractTransactionResponse } from 'ethers';
export type LSP14TestContext = {
accounts: SignerWithAddress[];
@@ -23,13 +23,13 @@ export type LSP14TestContext = {
};
export const shouldBehaveLikeLSP14 = (
- buildContext: (initialFunding?: number | BigNumber) => Promise,
+ buildContext: (initialFunding?: number | bigint) => Promise,
) => {
let context: LSP14TestContext;
let newOwner: SignerWithAddress;
before(async () => {
- context = await buildContext(ethers.utils.parseEther('50'));
+ context = await buildContext(ethers.parseEther('50'));
newOwner = context.accounts[1];
});
@@ -74,7 +74,7 @@ export const shouldBehaveLikeLSP14 = (
await expect(
context.contract
.connect(context.deployParams.owner)
- .transferOwnership(context.contract.address),
+ .transferOwnership(await context.contract.getAddress()),
).to.be.revertedWithCustomError(context.contract, 'LSP14CannotTransferOwnershipToSelf');
});
@@ -91,17 +91,17 @@ export const shouldBehaveLikeLSP14 = (
it('execute(...) - LYX transfer', async () => {
const recipient = context.accounts[3];
- const amount = ethers.utils.parseEther('3');
+ const amount = ethers.parseEther('3');
const recipientBalanceBefore = await provider.getBalance(recipient.address);
- const accountBalanceBefore = await provider.getBalance(context.contract.address);
+ const accountBalanceBefore = await provider.getBalance(await context.contract.getAddress());
await context.contract
.connect(context.deployParams.owner)
.execute(OPERATION_TYPES.CALL, recipient.address, amount, '0x');
const recipientBalanceAfter = await provider.getBalance(recipient.address);
- const accountBalanceAfter = await provider.getBalance(context.contract.address);
+ const accountBalanceAfter = await provider.getBalance(await context.contract.getAddress());
// recipient balance should have gone up
expect(recipientBalanceAfter).to.be.gt(recipientBalanceBefore);
@@ -124,7 +124,7 @@ export const shouldBehaveLikeLSP14 = (
await expect(
context.contract
.connect(context.deployParams.owner)
- .transferOwnership(upWithCustomURD.address),
+ .transferOwnership(await upWithCustomURD.getAddress()),
).to.be.revertedWithCustomError(
context.contract,
'LSP14MustAcceptOwnershipInSeparateTransaction',
@@ -172,7 +172,7 @@ export const shouldBehaveLikeLSP14 = (
it('should have cleared the pendingOwner after transferring ownership', async () => {
const newPendingOwner = await context.contract.pendingOwner();
- expect(newPendingOwner).to.equal(ethers.constants.AddressZero);
+ expect(newPendingOwner).to.equal(ethers.ZeroAddress);
});
it('should have emitted a OwnershipTransferred event', async () => {
@@ -202,7 +202,7 @@ export const shouldBehaveLikeLSP14 = (
it('should revert when calling `execute(...)`', async () => {
const recipient = context.accounts[3];
- const amount = ethers.utils.parseEther('3');
+ const amount = ethers.parseEther('3');
await expect(
context.contract
@@ -231,14 +231,14 @@ export const shouldBehaveLikeLSP14 = (
it('execute(...) - LYX transfer', async () => {
const recipient = context.accounts[3];
- const amount = ethers.utils.parseEther('3');
+ const amount = ethers.parseEther('3');
await expect(() =>
context.contract
.connect(newOwner)
.execute(OPERATION_TYPES.CALL, recipient.address, amount, '0x'),
).to.changeEtherBalances(
- [context.contract.address, recipient.address],
+ [await context.contract.getAddress(), recipient.address],
[
`-${amount}`, // account balance should have gone down
amount, // recipient balance should have gone up
@@ -263,12 +263,12 @@ export const shouldBehaveLikeLSP14 = (
describe('when calling renounceOwnership() the first time', () => {
let currentOwner: SignerWithAddress;
- let renounceOwnershipTx: ContractTransaction;
+ let renounceOwnershipTx: ContractTransactionResponse;
let anotherOwner: string;
before(async () => {
- context = await buildContext(ethers.utils.parseEther('20'));
+ context = await buildContext(ethers.parseEther('20'));
currentOwner = context.accounts[0];
@@ -278,7 +278,7 @@ export const shouldBehaveLikeLSP14 = (
await context.contract.connect(currentOwner).transferOwnership(anotherOwner);
// mine 1,000 blocks
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(1000)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(1000)]);
renounceOwnershipTx = await context.contract.connect(currentOwner).renounceOwnership();
@@ -298,12 +298,12 @@ export const shouldBehaveLikeLSP14 = (
})[0].slot,
);
- const _renounceOwnershipStartedAtAfter = await provider.getStorageAt(
- context.contract.address,
+ const _renounceOwnershipStartedAtAfter = await provider.getStorage(
+ await context.contract.getAddress(),
_renounceOwnershipStartedAtAfterSlotNumber,
);
- expect(ethers.BigNumber.from(_renounceOwnershipStartedAtAfter).toNumber()).to.equal(
+ expect(ethers.toBigInt(_renounceOwnershipStartedAtAfter)).to.equal(
renounceOwnershipTx.blockNumber,
);
});
@@ -317,13 +317,13 @@ export const shouldBehaveLikeLSP14 = (
});
it('should reset the pendingOwner', async () => {
- expect(await context.contract.pendingOwner()).to.equal(ethers.constants.AddressZero);
+ expect(await context.contract.pendingOwner()).to.equal(ethers.ZeroAddress);
});
describe('currentOwner should still be able to interact with contract before confirming', () => {
it('`setData(...)`', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Random Key'));
- const value = ethers.utils.hexlify(ethers.utils.toUtf8Bytes('Random Value'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('Random Key'));
+ const value = ethers.hexlify(ethers.toUtf8Bytes('Random Value'));
await context.contract.connect(currentOwner).setData(key, value);
@@ -334,21 +334,24 @@ export const shouldBehaveLikeLSP14 = (
it('transfer LYX via `execute(...)`', async () => {
const recipient = context.accounts[3].address;
- const amount = ethers.utils.parseEther('3');
+ const amount = ethers.parseEther('3');
// verify that balances have been updated
await expect(() =>
context.contract
.connect(currentOwner)
.execute(OPERATION_TYPES.CALL, recipient, amount, '0x'),
- ).to.changeEtherBalances([context.contract.address, recipient], [`-${amount}`, amount]);
+ ).to.changeEtherBalances(
+ [await context.contract.getAddress(), recipient],
+ [`-${amount}`, amount],
+ );
});
});
});
describe('when calling renounceOwnership() the second time', () => {
before(async () => {
- context = await buildContext(ethers.utils.parseEther('20'));
+ context = await buildContext(ethers.parseEther('20'));
});
it('should revert if called in the delay period', async () => {
@@ -359,7 +362,7 @@ export const shouldBehaveLikeLSP14 = (
const renounceOwnershipOnceReceipt = await renounceOwnershipOnce.wait();
// skip 98 blocks, but not enough to reach the delay period
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(98)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(98)]);
await expect(context.contract.connect(context.deployParams.owner).renounceOwnership())
.to.be.revertedWithCustomError(context.contract, 'LSP14NotInRenounceOwnershipInterval')
@@ -371,7 +374,7 @@ export const shouldBehaveLikeLSP14 = (
expect(await context.contract.owner()).to.equal(context.deployParams.owner.address);
// skip 500 blocks for the next test
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(500)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(500)]);
});
it('should initialize again if the confirmation period passed', async () => {
@@ -389,33 +392,31 @@ export const shouldBehaveLikeLSP14 = (
await context.contract.connect(context.deployParams.owner).renounceOwnership();
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(400)]); // skip 400 blocks
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(400)]); // skip 400 blocks
const tx = await context.contract.connect(context.deployParams.owner).renounceOwnership();
await tx.wait();
- const _renounceOwnershipStartedAtAfter = await provider.getStorageAt(
- context.contract.address,
+ const _renounceOwnershipStartedAtAfter = await provider.getStorage(
+ await context.contract.getAddress(),
_renounceOwnershipStartedAtAfterSlotNumber,
);
- expect(ethers.BigNumber.from(_renounceOwnershipStartedAtAfter).toNumber()).to.equal(
- tx.blockNumber,
- );
+ expect(ethers.toBigInt(_renounceOwnershipStartedAtAfter)).to.equal(tx.blockNumber);
});
describe('when called after the delay and before the confirmation period end', () => {
let renounceOwnershipSecondTx: ContractTransaction;
before(async () => {
- context = await buildContext(ethers.utils.parseEther('20'));
+ context = await buildContext(ethers.parseEther('20'));
// Call renounceOwnership for the first time
await context.contract.connect(context.deployParams.owner).renounceOwnership();
// Skip 199 block to reach the time where renouncing ownership can happen
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(199)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(199)]);
// Call renounceOwnership for the second time
renounceOwnershipSecondTx = await context.contract
@@ -426,19 +427,19 @@ export const shouldBehaveLikeLSP14 = (
it('should have emitted a OwnershipTransferred event', async () => {
await expect(renounceOwnershipSecondTx)
.to.emit(context.contract, 'OwnershipTransferred')
- .withArgs(context.deployParams.owner.address, ethers.constants.AddressZero);
+ .withArgs(context.deployParams.owner.address, ethers.ZeroAddress);
- expect(await context.contract.owner()).to.equal(ethers.constants.AddressZero);
+ expect(await context.contract.owner()).to.equal(ethers.ZeroAddress);
});
it('should have emitted a OwnershipRenounced event', async () => {
await expect(renounceOwnershipSecondTx).to.emit(context.contract, 'OwnershipRenounced');
- expect(await context.contract.owner()).to.equal(ethers.constants.AddressZero);
+ expect(await context.contract.owner()).to.equal(ethers.ZeroAddress);
});
it('owner should now be address(0)', async () => {
- expect(await context.contract.owner()).to.equal(ethers.constants.AddressZero);
+ expect(await context.contract.owner()).to.equal(ethers.ZeroAddress);
});
it('should have reset the `_renounceOwnershipStartedAt` state variable to zero', async () => {
@@ -456,18 +457,18 @@ export const shouldBehaveLikeLSP14 = (
})[0].slot,
);
- const _renounceOwnershipStartedAtAfter = await provider.getStorageAt(
- context.contract.address,
+ const _renounceOwnershipStartedAtAfter = await provider.getStorage(
+ await context.contract.getAddress(),
_renounceOwnershipStartedAtAfterSlotNumber,
);
- expect(ethers.BigNumber.from(_renounceOwnershipStartedAtAfter).toNumber()).to.equal(0);
+ expect(ethers.toBigInt(_renounceOwnershipStartedAtAfter)).to.equal(0);
});
describe('currentOwner should not be able to interact with contract anymore after confirming', () => {
it('`setData(...)`', async () => {
- const key = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Random Key'));
- const value = ethers.utils.hexlify(ethers.utils.toUtf8Bytes('Random Value'));
+ const key = ethers.keccak256(ethers.toUtf8Bytes('Random Key'));
+ const value = ethers.hexlify(ethers.toUtf8Bytes('Random Value'));
await expect(
context.contract.connect(context.deployParams.owner).setData(key, value),
@@ -476,7 +477,7 @@ export const shouldBehaveLikeLSP14 = (
it('transfer LYX via `execute(...)`', async () => {
const recipient = context.accounts[3].address;
- const amount = ethers.utils.parseEther('3');
+ const amount = ethers.parseEther('3');
await expect(
context.contract
@@ -491,7 +492,7 @@ export const shouldBehaveLikeLSP14 = (
let newOwner: SignerWithAddress;
before(async () => {
- context = await buildContext(ethers.utils.parseEther('20'));
+ context = await buildContext(ethers.parseEther('20'));
// transferOwnership to a new owner
newOwner = context.accounts[3];
@@ -504,14 +505,14 @@ export const shouldBehaveLikeLSP14 = (
await context.contract.connect(context.deployParams.owner).renounceOwnership();
// Skip 199 block to reach the time where renouncing ownership can happen
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(199)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(199)]);
// Call renounceOwnership for the second time
await context.contract.connect(context.deployParams.owner).renounceOwnership();
});
it('should reset the pendingOwner whenever renounceOwnership(..) is confirmed', async () => {
- expect(await context.contract.pendingOwner()).to.equal(ethers.constants.AddressZero);
+ expect(await context.contract.pendingOwner()).to.equal(ethers.ZeroAddress);
});
it('previous pendingOwner should not be able to call acceptOwnership(...) anymore', async () => {
@@ -529,7 +530,7 @@ export const shouldBehaveLikeLSP14 = (
// Simulate a scenario where we are at just few hundred blocks after the blockchain started
// (few hundred blocks after genesis)
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(138)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(138)]);
});
it('should instantiate the renounceOwnership process in 2 steps correctly', async () => {
@@ -551,12 +552,12 @@ export const shouldBehaveLikeLSP14 = (
await renounceOwnershipTx.wait();
- const _renounceOwnershipStartedAtAfter = await provider.getStorageAt(
- context.contract.address,
+ const _renounceOwnershipStartedAtAfter = await provider.getStorage(
+ await context.contract.getAddress(),
_renounceOwnershipStartedAtAfterSlotNumber,
);
- expect(ethers.BigNumber.from(_renounceOwnershipStartedAtAfter)).to.equal(
+ expect(ethers.toBigInt(_renounceOwnershipStartedAtAfter)).to.equal(
renounceOwnershipTx.blockNumber,
);
diff --git a/tests/LSP17ContractExtension/LSP17Extendable.behaviour.ts b/tests/LSP17ContractExtension/LSP17Extendable.behaviour.ts
index 32e2249f2..7304af609 100644
--- a/tests/LSP17ContractExtension/LSP17Extendable.behaviour.ts
+++ b/tests/LSP17ContractExtension/LSP17Extendable.behaviour.ts
@@ -1,8 +1,12 @@
import { expect } from 'chai';
import { ethers } from 'hardhat';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
import {
+ NameExtension,
+ NameExtension__factory,
+ AgeExtension__factory,
+ AgeExtension,
LSP0ERC725Account,
LSP9Vault,
CheckerExtension__factory,
@@ -157,9 +161,9 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
}),
- ).to.not.be.reverted.to.not.emit(context.contract, 'UniversalReceiver');
+ ).to.not.emit(context.contract, 'UniversalReceiver');
});
});
@@ -169,7 +173,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise {
describe('when calling the contract with transferOwnership Signature', () => {
it('should pass and set the pending owner', async () => {
- const pendingOwnerBefore = await context.contract.callStatic.pendingOwner();
- expect(pendingOwnerBefore).to.equal(ethers.constants.AddressZero);
+ const pendingOwnerBefore = await context.contract.pendingOwner();
+ expect(pendingOwnerBefore).to.equal(ethers.ZeroAddress);
const transferOwnershipPayload = context.contract.interface.encodeFunctionData(
'transferOwnership',
@@ -218,11 +222,11 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: notExistingFunctionSignature,
}),
)
@@ -252,7 +256,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise Promise {
@@ -340,7 +347,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise Promise {
@@ -403,7 +413,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
@@ -429,13 +442,13 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: emitEventFunctionSelector,
value: 0,
}),
@@ -471,7 +484,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise {
const returnValue = await provider.call({
from: context.accounts[0].address,
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: nameFunctionSelector,
});
@@ -522,13 +533,13 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
const returnValue = await provider.call({
from: context.accounts[0].address,
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: ageFunctionSelector,
});
@@ -544,13 +555,11 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
- const balanceBefore = await transferExtension.callStatic.balances(
- context.accounts[0].address,
- );
+ const balanceBefore = await transferExtension.balances(context.accounts[0].address);
expect(balanceBefore).to.equal(0);
@@ -561,13 +570,11 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
@@ -593,7 +603,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise {
const reenterAccountFunctionSignature =
@@ -642,7 +655,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
@@ -693,13 +709,16 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: '0x01',
}),
).to.not.be.reverted;
@@ -714,7 +733,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: '0x00000000',
}),
).to.not.be.reverted;
@@ -770,12 +786,10 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise {
const graffiti =
'0x00000000' +
- ethers.utils
- .hexlify(ethers.utils.toUtf8Bytes('Sending a decentralized message'))
+ ethers
+ .hexlify(ethers.toUtf8Bytes('Sending a decentralized message'))
.substring(2);
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: graffiti,
}),
).to.not.be.reverted;
@@ -848,14 +859,17 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
it('should revert', async () => {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: '0x00000000',
}),
).to.be.reverted;
@@ -866,13 +880,13 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
const graffiti =
'0x00000000' +
- ethers.utils
- .hexlify(ethers.utils.toUtf8Bytes('Sending a decentralized message'))
+ ethers
+ .hexlify(ethers.toUtf8Bytes('Sending a decentralized message'))
.substring(2);
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: graffiti,
}),
).to.be.reverted;
@@ -885,8 +899,8 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
describe('when setting less than 20 bytes as data value for the LSP17Extension data key', () => {
- const randomSelector = ethers.utils.hexlify(ethers.utils.randomBytes(4));
- const randomBytes10Value = ethers.utils.hexlify(ethers.utils.randomBytes(10));
+ const randomSelector = ethers.hexlify(ethers.randomBytes(4));
+ const randomBytes10Value = ethers.hexlify(ethers.randomBytes(10));
const lsp17DataKey =
ERC725YDataKeys.LSP17.LSP17ExtensionPrefix +
@@ -902,7 +916,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: randomSelector,
}),
)
@@ -923,7 +937,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
describe('before setting the onERC721ReceivedExtension', () => {
it('should fail since onERC721Received is not implemented', async () => {
- await expect(token.mint(context.contract.address)).to.be.reverted;
+ await expect(token.mint(await context.contract.getAddress())).to.be.reverted;
});
});
@@ -939,11 +953,14 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
- await expect(token.mint(context.contract.address)).to.emit(token, 'Minted');
+ await expect(token.mint(await context.contract.getAddress())).to.emit(
+ token,
+ 'Minted',
+ );
});
});
});
diff --git a/tests/LSP17ContractExtension/LSP17Extendable.test.ts b/tests/LSP17ContractExtension/LSP17Extendable.test.ts
index 01ecf9a78..d109eeeb6 100644
--- a/tests/LSP17ContractExtension/LSP17Extendable.test.ts
+++ b/tests/LSP17ContractExtension/LSP17Extendable.test.ts
@@ -18,23 +18,23 @@ describe('LSP17Extendable - Basic Implementation', () => {
let errorsExtension: RevertErrorsTestExtension;
const selectorWithExtensionAndNoTransferValue =
- EmitEventExtension__factory.createInterface().getSighash('emitEvent');
+ EmitEventExtension__factory.createInterface().getFunction('emitEvent').selector;
const selectorWithNoExtension = '0xdeadbeef';
// selectors to test that errors are bubbled up to the contract
const revertErrorsExtensionInterface = RevertErrorsTestExtension__factory.createInterface();
const selectorRevertCustomError =
- revertErrorsExtensionInterface.getSighash('revertWithCustomError');
+ revertErrorsExtensionInterface.getFunction('revertWithCustomError').selector;
const selectorRevertErrorString =
- revertErrorsExtensionInterface.getSighash('revertWithErrorString');
+ revertErrorsExtensionInterface.getFunction('revertWithErrorString').selector;
const selectorRevertPanicError =
- revertErrorsExtensionInterface.getSighash('revertWithPanicError');
+ revertErrorsExtensionInterface.getFunction('revertWithPanicError').selector;
const selectorRevertNoErrorData =
- revertErrorsExtensionInterface.getSighash('revertWithNoErrorData');
+ revertErrorsExtensionInterface.getFunction('revertWithNoErrorData').selector;
before('setup', async () => {
accounts = await ethers.getSigners();
@@ -45,28 +45,28 @@ describe('LSP17Extendable - Basic Implementation', () => {
await lsp17Implementation.setExtension(
selectorWithExtensionAndNoTransferValue,
- exampleExtension.address,
+ await exampleExtension.getAddress(),
false,
);
await lsp17Implementation.setExtension(
selectorRevertCustomError,
- errorsExtension.address,
+ await errorsExtension.getAddress(),
false,
);
await lsp17Implementation.setExtension(
selectorRevertErrorString,
- errorsExtension.address,
+ await errorsExtension.getAddress(),
false,
);
await lsp17Implementation.setExtension(
selectorRevertPanicError,
- errorsExtension.address,
+ await errorsExtension.getAddress(),
false,
);
await lsp17Implementation.setExtension(
selectorRevertNoErrorData,
- errorsExtension.address,
+ await errorsExtension.getAddress(),
false,
);
});
@@ -81,7 +81,7 @@ describe('LSP17Extendable - Basic Implementation', () => {
it('should revert with error `NoExtensionFoundForFunctionSelector', async () => {
await expect(
accounts[0].sendTransaction({
- to: lsp17Implementation.address,
+ to: await lsp17Implementation.getAddress(),
data: selectorWithNoExtension,
}),
).to.be.revertedWithCustomError(lsp17Implementation, 'NoExtensionFoundForFunctionSelector');
@@ -93,7 +93,7 @@ describe('LSP17Extendable - Basic Implementation', () => {
it('should pass and not revert', async () => {
await expect(
accounts[0].sendTransaction({
- to: lsp17Implementation.address,
+ to: await lsp17Implementation.getAddress(),
data: selectorWithExtensionAndNoTransferValue,
}),
).to.emit(exampleExtension, 'EventEmittedInExtension');
@@ -108,7 +108,7 @@ describe('LSP17Extendable - Basic Implementation', () => {
expect(anotherStorageBefore).to.equal('0x');
await accounts[0].sendTransaction({
- to: lsp17Implementation.address,
+ to: await lsp17Implementation.getAddress(),
data: selectorWithExtensionAndNoTransferValue,
});
@@ -125,18 +125,18 @@ describe('LSP17Extendable - Basic Implementation', () => {
it('should bubble up custom errors', async () => {
await expect(
accounts[0].sendTransaction({
- to: lsp17Implementation.address,
+ to: await lsp17Implementation.getAddress(),
data: selectorRevertCustomError,
}),
)
.to.be.revertedWithCustomError(errorsExtension, 'SomeCustomError')
- .withArgs(lsp17Implementation.address);
+ .withArgs(await lsp17Implementation.getAddress());
});
it('should bubble up revert errors string', async () => {
await expect(
accounts[0].sendTransaction({
- to: lsp17Implementation.address,
+ to: await lsp17Implementation.getAddress(),
data: selectorRevertErrorString,
}),
).to.be.revertedWith('some error message');
@@ -145,7 +145,7 @@ describe('LSP17Extendable - Basic Implementation', () => {
it('should bubble up Panic type errors with their code', async () => {
await expect(
accounts[0].sendTransaction({
- to: lsp17Implementation.address,
+ to: await lsp17Implementation.getAddress(),
data: selectorRevertPanicError,
}),
).to.be.revertedWithPanic('0x11' || 17);
@@ -154,7 +154,7 @@ describe('LSP17Extendable - Basic Implementation', () => {
it('should not bubble up anything with empty error data (`revert()`)', async () => {
await expect(
accounts[0].sendTransaction({
- to: lsp17Implementation.address,
+ to: await lsp17Implementation.getAddress(),
data: selectorRevertNoErrorData,
}),
).to.be.reverted;
diff --git a/tests/LSP17ContractExtension/LSP17ExtendableTokens.behaviour.ts b/tests/LSP17ContractExtension/LSP17ExtendableTokens.behaviour.ts
index fd8bea506..d5f2511bc 100644
--- a/tests/LSP17ContractExtension/LSP17ExtendableTokens.behaviour.ts
+++ b/tests/LSP17ContractExtension/LSP17ExtendableTokens.behaviour.ts
@@ -1,5 +1,5 @@
import { expect } from 'chai';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
import {
LSP0ERC725Account,
@@ -155,7 +155,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: notExistingFunctionSignature,
}),
)
@@ -172,7 +172,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise Promise {
@@ -260,7 +263,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise Promise Promise {
@@ -323,7 +329,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
@@ -349,13 +358,13 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: emitEventFunctionSelector,
value: 0,
}),
@@ -391,13 +400,13 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
const returnValue = await provider.call({
from: context.accounts[0].address,
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: nameFunctionSelector,
});
@@ -413,13 +422,13 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
const returnValue = await provider.call({
from: context.accounts[0].address,
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: ageFunctionSelector,
});
@@ -435,13 +444,11 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
- const balanceBefore = await transferExtension.callStatic.balances(
- context.accounts[0].address,
- );
+ const balanceBefore = await transferExtension.balances(context.accounts[0].address);
expect(balanceBefore).to.equal(0);
@@ -452,13 +459,11 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
- const balanceBefore = await provider.getBalance(buyExtension.address);
+ const balanceBefore = await provider.getBalance(await buyExtension.getAddress());
expect(balanceBefore).to.equal(0);
await context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
value: 100,
data: buyFunctionSelector,
});
- const balanceAfter = await provider.getBalance(buyExtension.address);
+ const balanceAfter = await provider.getBalance(await buyExtension.getAddress());
expect(balanceAfter).to.equal(100);
});
@@ -502,7 +507,10 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
@@ -522,7 +530,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
const reenterAccountFunctionSignature =
@@ -547,7 +558,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise Promise {
@@ -587,7 +601,7 @@ export const shouldBehaveLikeLSP17 = (buildContext: () => Promise {
await expect(
context.accounts[0].sendTransaction({
- to: context.contract.address,
+ to: await context.contract.getAddress(),
data: '0x01',
}),
).to.be.revertedWithCustomError(context.contract, 'InvalidFunctionSelector');
diff --git a/tests/LSP17Extensions/Extension4337/4337.test.ts b/tests/LSP17Extensions/Extension4337/4337.test.ts
index 67037fadf..b4b5113e9 100644
--- a/tests/LSP17Extensions/Extension4337/4337.test.ts
+++ b/tests/LSP17Extensions/Extension4337/4337.test.ts
@@ -1,9 +1,8 @@
import { ethers } from 'hardhat';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
-import { Signer } from 'ethers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
import { EntryPoint__factory, EntryPoint } from '@account-abstraction/contracts';
-import { BytesLike, parseEther } from 'ethers/lib/utils';
+import { BytesLike, Signer, parseEther } from 'ethers';
import { expect } from 'chai';
import {
LSP6KeyManager,
@@ -19,12 +18,15 @@ import { ALL_PERMISSIONS } from '@lukso/lsp6-contracts';
import { combinePermissions } from '../../utils/helpers';
import { fillAndSign } from '../helpers/UserOp';
-describe('4337', function () {
+// Deploying NickFactory currently fails with latest Hardhat version. Commenting out temporarily until resolved
+// See following issue: https://github.com/NomicFoundation/hardhat/issues/4939
+describe.skip('4337', function () {
let bundler: SignerWithAddress;
let deployer: Signer;
let universalProfile: UniversalProfile;
let universalProfileAddress: string;
let keyManager: LSP6KeyManager;
+ let keyManagerAddress: string;
let entryPoint: EntryPoint;
let controllerWith4337Permission: SignerWithAddress;
let controllerWithout4337Permission: SignerWithAddress;
@@ -36,7 +38,7 @@ describe('4337', function () {
before('setup', async function () {
const provider = ethers.provider;
- deployer = provider.getSigner();
+ deployer = await provider.getSigner();
const deployerAddress = await deployer.getAddress();
[
@@ -50,12 +52,13 @@ describe('4337', function () {
await deployer.getAddress(),
{ value: parseEther('1') },
);
- universalProfileAddress = universalProfile.address;
+ universalProfileAddress = await universalProfile.getAddress();
- keyManager = await new LSP6KeyManager__factory(deployer).deploy(universalProfile.address);
+ keyManager = await new LSP6KeyManager__factory(deployer).deploy(universalProfileAddress);
+ keyManagerAddress = await keyManager.getAddress();
// transfer ownership to keyManager
- await universalProfile.transferOwnership(keyManager.address);
+ await universalProfile.transferOwnership(keyManagerAddress);
const dataKey =
ERC725YDataKeys.LSP6['AddressPermissions:Permissions'] + deployerAddress.slice(2);
@@ -64,27 +67,30 @@ describe('4337', function () {
const acceptOwnershipBytes = universalProfile.interface.encodeFunctionData('acceptOwnership');
await keyManager.execute(acceptOwnershipBytes);
- expect(await universalProfile.owner()).to.eq(keyManager.address);
+ expect(await universalProfile.owner()).to.eq(keyManagerAddress);
// deploy entrypoint
entryPoint = await deployEntryPoint();
- expect(await isDeployed(entryPoint.address)).to.eq(true);
+ expect(await isDeployed(await entryPoint.getAddress())).to.eq(true);
// give all permissions to entrypoint
const dataKeyEntryPointPermissions =
- ERC725YDataKeys.LSP6['AddressPermissions:Permissions'] + entryPoint.address.slice(2);
+ ERC725YDataKeys.LSP6['AddressPermissions:Permissions'] +
+ (await entryPoint.getAddress()).slice(2);
await universalProfile.setData(dataKeyEntryPointPermissions, ALL_PERMISSIONS);
// deploy extension and attach it to universalProfile
- const extension4337 = await new Extension4337__factory(deployer).deploy(entryPoint.address);
- const validateUserOpSigHash = extension4337.interface.getSighash('validateUserOp');
+ const extension4337 = await new Extension4337__factory(deployer).deploy(
+ await entryPoint.getAddress(),
+ );
+ const validateUserOpSigHash = extension4337.interface.getFunction('validateUserOp').selector;
const extensionDataKey =
ERC725YDataKeys.LSP17.LSP17ExtensionPrefix +
validateUserOpSigHash.slice(2) +
'00000000000000000000000000000000';
- await universalProfile.setData(extensionDataKey, extension4337.address);
+ await universalProfile.setData(extensionDataKey, extension4337.target as string);
// give permissions to controllers
const dataKeyWithPermission4337 =
@@ -109,7 +115,7 @@ describe('4337', function () {
// execute calldata
transferCallData = universalProfile.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- ethers.constants.AddressZero,
+ ethers.ZeroAddress,
amountToTransfer,
'0x1234',
]);
@@ -120,8 +126,7 @@ describe('4337', function () {
});
it('should pass', async function () {
- const addressZeroBalanceBefore = await getBalance(ethers.constants.AddressZero);
-
+ const addressZeroBalanceBefore = await getBalance(ethers.ZeroAddress);
const userOperation = await fillAndSign(
{
sender: universalProfileAddress,
@@ -130,11 +135,8 @@ describe('4337', function () {
controllerWith4337Permission,
entryPoint,
);
-
await entryPoint.handleOps([userOperation], bundler.address);
-
- const addressZeroBalanceAfter = await getBalance(ethers.constants.AddressZero);
-
+ const addressZeroBalanceAfter = await getBalance(ethers.ZeroAddress);
expect(addressZeroBalanceAfter - addressZeroBalanceBefore).to.eq(amountToTransfer);
});
diff --git a/tests/LSP17Extensions/helpers/Create2Factory.ts b/tests/LSP17Extensions/helpers/Create2Factory.ts
index abf7a43bd..8777ee51d 100644
--- a/tests/LSP17Extensions/helpers/Create2Factory.ts
+++ b/tests/LSP17Extensions/helpers/Create2Factory.ts
@@ -1,7 +1,8 @@
// from: https://github.com/Arachnid/deterministic-deployment-proxy
-import { BigNumber, BigNumberish, ethers, Signer } from 'ethers';
-import { arrayify, hexConcat, hexlify, hexZeroPad, keccak256 } from 'ethers/lib/utils';
-import { Provider } from '@ethersproject/providers';
+import { BigNumberish, Signer, ethers, toBeHex } from 'ethers';
+import { ethers as hardhatEthers } from 'hardhat';
+import { getBytes, concat, zeroPadValue, keccak256 } from 'ethers';
+
import { TransactionRequest } from '@ethersproject/abstract-provider';
export class Create2Factory {
@@ -19,8 +20,8 @@ export class Create2Factory {
).toString();
constructor(
- readonly provider: Provider,
- readonly signer = (provider as ethers.providers.JsonRpcProvider).getSigner(),
+ readonly provider: typeof hardhatEthers.provider = hardhatEthers.provider,
+ readonly signer = hardhatEthers.provider.getSigner().then(),
) {}
/**
@@ -51,24 +52,25 @@ export class Create2Factory {
data: this.getDeployTransactionCallData(initCode, salt),
};
if (gasLimit === 'estimate') {
- gasLimit = await this.signer.estimateGas(deployTx);
+ gasLimit = await (await this.signer).estimateGas(deployTx);
}
if (gasLimit === undefined) {
- gasLimit =
- arrayify(initCode)
+ gasLimit = ethers.toBigInt(
+ getBytes(initCode)
.map((x) => (x === 0 ? 4 : 16))
.reduce((sum, x) => sum + x) +
- (200 * initCode.length) / 2 + // actual is usually somewhat smaller (only deposited code, not entire constructor)
- 6 * Math.ceil(initCode.length / 64) + // hash price. very minor compared to deposit costs
- 32000 +
- 21000;
+ (200 * initCode.length) / 2 + // actual is usually somewhat smaller (only deposited code, not entire constructor)
+ 6 * Math.ceil(initCode.length / 64) + // hash price. very minor compared to deposit costs
+ 32000 +
+ 21000,
+ );
// deployer requires some extra gas
- gasLimit = Math.floor((gasLimit * 64) / 63);
+ gasLimit = ethers.toBigInt(Math.floor((ethers.toNumber(gasLimit) * 64) / 63));
}
- const ret = await this.signer.sendTransaction({ ...deployTx, gasLimit });
+ const ret = await (await this.signer).sendTransaction({ ...deployTx, gasLimit });
await ret.wait();
if ((await this.provider.getCode(addr).then((code) => code.length)) === 2) {
throw new Error('failed to deploy');
@@ -77,8 +79,8 @@ export class Create2Factory {
}
getDeployTransactionCallData(initCode: string, salt: BigNumberish = 0): string {
- const saltBytes32 = hexZeroPad(hexlify(salt), 32);
- return hexConcat([saltBytes32, initCode]);
+ const saltBytes32 = zeroPadValue(toBeHex(salt), 32);
+ return concat([saltBytes32, initCode]);
}
/**
@@ -88,11 +90,11 @@ export class Create2Factory {
* @param salt
*/
static getDeployedAddress(initCode: string, salt: BigNumberish): string {
- const saltBytes32 = hexZeroPad(hexlify(salt), 32);
+ const saltBytes32 = zeroPadValue(toBeHex(salt), 32);
return (
'0x' +
keccak256(
- hexConcat(['0xff', Create2Factory.contractAddress, saltBytes32, keccak256(initCode)]),
+ concat(['0xff', Create2Factory.contractAddress, saltBytes32, keccak256(initCode)]),
).slice(-40)
);
}
@@ -102,11 +104,23 @@ export class Create2Factory {
if (await this._isFactoryDeployed()) {
return;
}
- await (signer ?? this.signer).sendTransaction({
+
+ const currentSigner = (await signer) ?? (await this.signer);
+ const tx = await currentSigner.sendTransaction({
to: Create2Factory.factoryDeployer,
- value: BigNumber.from(Create2Factory.factoryDeploymentFee),
+ value: BigInt(Create2Factory.factoryDeploymentFee),
});
- await this.provider.sendTransaction(Create2Factory.factoryTx);
+ await tx.wait();
+
+ // TODO: this transaction keeps failing with the following error, although the deployment transaction
+ // for the Create2Factory has not changed:
+ // `Error: VM Exception while processing transaction: invalid opcode`
+
+ await this.provider.send('eth_sendTransaction', [
+ {
+ data: Create2Factory.factoryTx,
+ },
+ ]);
if (!(await this._isFactoryDeployed())) {
throw new Error('fatal: failed to deploy deterministic deployer');
}
diff --git a/tests/LSP17Extensions/helpers/UserOp.ts b/tests/LSP17Extensions/helpers/UserOp.ts
index cb8b3141e..428445043 100644
--- a/tests/LSP17Extensions/helpers/UserOp.ts
+++ b/tests/LSP17Extensions/helpers/UserOp.ts
@@ -1,12 +1,22 @@
-import { arrayify, defaultAbiCoder, hexDataSlice, keccak256 } from 'ethers/lib/utils';
-import { BigNumber, Wallet } from 'ethers';
+import {
+ getBytes,
+ dataSlice,
+ keccak256,
+ BytesLike,
+ toBigInt,
+ toBeHex,
+ hexlify,
+ toNumber,
+} from 'ethers';
+import { Wallet } from 'ethers';
import { AddressZero, callDataCost } from './utils';
import { ecsign, toRpcSig, keccak256 as keccak256_buffer } from 'ethereumjs-util';
import { Create2Factory } from './Create2Factory';
import { EntryPoint } from '@account-abstraction/contracts';
-import { ethers } from 'ethers';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { AbiCoder } from 'ethers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
import * as typ from './solidityTypes';
+import { ethers as hreEther } from 'hardhat';
export interface UserOperation {
sender: typ.address;
@@ -25,7 +35,7 @@ export interface UserOperation {
export function packUserOp(op: UserOperation, forSignature = true): string {
if (forSignature) {
// Encoding the UserOperation object fields into a single string for signature
- return defaultAbiCoder.encode(
+ return AbiCoder.defaultAbiCoder().encode(
[
'address',
'uint256',
@@ -41,19 +51,19 @@ export function packUserOp(op: UserOperation, forSignature = true): string {
[
op.sender,
op.nonce,
- keccak256(op.initCode),
- keccak256(op.callData),
+ keccak256(op.initCode as BytesLike),
+ keccak256(op.callData as BytesLike),
op.callGasLimit,
op.verificationGasLimit,
op.preVerificationGas,
op.maxFeePerGas,
op.maxPriorityFeePerGas,
- keccak256(op.paymasterAndData),
+ keccak256(op.paymasterAndData as BytesLike),
],
);
} else {
// Encoding the UserOperation object fields into a single string including the signature
- return defaultAbiCoder.encode(
+ return AbiCoder.defaultAbiCoder().encode(
[
'address',
'uint256',
@@ -87,7 +97,7 @@ export function packUserOp(op: UserOperation, forSignature = true): string {
export function getUserOpHash(op: UserOperation, entryPoint: string, chainId: number): string {
const userOpHash = keccak256(packUserOp(op, true));
// Encoding the UserOperation hash, entryPoint address, and chainId for final hash computation
- const enc = defaultAbiCoder.encode(
+ const enc = AbiCoder.defaultAbiCoder().encode(
['bytes32', 'address', 'uint256'],
[userOpHash, entryPoint, chainId],
);
@@ -117,10 +127,10 @@ export function signUserOp(
const message = getUserOpHash(op, entryPoint, chainId);
const msg1 = Buffer.concat([
Buffer.from('\x19Ethereum Signed Message:\n32', 'ascii'),
- Buffer.from(arrayify(message)),
+ Buffer.from(getBytes(message)),
]);
- const sig = ecsign(keccak256_buffer(msg1), Buffer.from(arrayify(signer.privateKey)));
+ const sig = ecsign(keccak256_buffer(msg1), Buffer.from(getBytes(signer.privateKey)));
// that's equivalent of: await signer.signMessage(message);
// (but without "async"
const signedMessage1 = toRpcSig(sig.v, sig.r, sig.s);
@@ -163,40 +173,38 @@ export async function fillUserOp(
entryPoint?: EntryPoint,
): Promise {
const op1 = { ...op };
- const provider = entryPoint?.provider;
+ const provider = hreEther.provider;
if (op.initCode != null) {
- const initAddr = hexDataSlice(op1.initCode, 0, 20);
- const initCallData = hexDataSlice(op1.initCode, 20);
+ const initAddr = dataSlice(op1.initCode as BytesLike, 0, 20);
+ const initCallData = dataSlice(op1.initCode as BytesLike, 20);
if (op1.nonce == null) op1.nonce = 0;
if (op1.sender == null) {
if (initAddr.toLowerCase() === Create2Factory.contractAddress.toLowerCase()) {
- const ctr = hexDataSlice(initCallData, 32);
- const salt = hexDataSlice(initCallData, 0, 32);
+ const ctr = dataSlice(initCallData, 32);
+ const salt = dataSlice(initCallData, 0, 32);
op1.sender = Create2Factory.getDeployedAddress(ctr, salt);
} else {
if (provider == null) throw new Error('no entrypoint/provider');
op1.sender = await entryPoint.callStatic
- .getSenderAddress(op1.initCode)
+ .getSenderAddress(op1.initCode as BytesLike)
.catch((e) => e.errorArgs.sender);
}
}
if (op1.verificationGasLimit == null) {
if (provider == null) throw new Error('no entrypoint/provider');
const initEstimate = await provider.estimateGas({
- from: entryPoint?.address,
+ from: entryPoint?.target,
to: initAddr,
data: initCallData,
gasLimit: 10e6,
});
- op1.verificationGasLimit = BigNumber.from(DefaultsForUserOp.verificationGasLimit).add(
- initEstimate,
- );
+ op1.verificationGasLimit = toBigInt(DefaultsForUserOp.verificationGasLimit) + initEstimate;
}
}
if (op1.nonce == null) {
if (provider == null) throw new Error('must have entryPoint to autofill nonce');
- const signerKeyAsUint192 = ethers.BigNumber.from(signer.address).toHexString();
+ const signerKeyAsUint192 = toBeHex(toBigInt(signer.address));
try {
op1.nonce = await entryPoint.getNonce(op1.sender, signerKeyAsUint192);
@@ -207,9 +215,9 @@ export async function fillUserOp(
if (op1.callGasLimit == null && op.callData != null) {
if (provider == null) throw new Error('must have entryPoint for callGasLimit estimate');
const gasEtimated = await provider.estimateGas({
- from: entryPoint?.address,
+ from: entryPoint?.target,
to: op1.sender,
- data: op1.callData,
+ data: hexlify(op1.callData as BytesLike),
});
op1.callGasLimit = gasEtimated;
@@ -217,9 +225,9 @@ export async function fillUserOp(
if (op1.maxFeePerGas == null) {
if (provider == null) throw new Error('must have entryPoint to autofill maxFeePerGas');
const block = await provider.getBlock('latest');
- op1.maxFeePerGas = block.baseFeePerGas.add(
- op1.maxPriorityFeePerGas ?? DefaultsForUserOp.maxPriorityFeePerGas,
- );
+ op1.maxFeePerGas =
+ block.baseFeePerGas +
+ BigInt(op1.maxPriorityFeePerGas ?? DefaultsForUserOp.maxPriorityFeePerGas);
}
if (op1.maxPriorityFeePerGas == null) {
@@ -238,11 +246,11 @@ export async function fillAndSign(
signer: SignerWithAddress,
entryPoint?: EntryPoint,
): Promise {
- const provider = entryPoint?.provider;
+ const provider = hreEther.provider;
const op2 = await fillUserOp(op, signer, entryPoint);
const chainId = await provider.getNetwork().then((net) => net.chainId);
- const message = arrayify(getUserOpHash(op2, entryPoint.address, chainId));
+ const message = getBytes(getUserOpHash(op2, entryPoint.target as string, toNumber(chainId)));
return {
...op2,
diff --git a/tests/LSP17Extensions/helpers/utils.ts b/tests/LSP17Extensions/helpers/utils.ts
index 10c338d83..cedceee39 100644
--- a/tests/LSP17Extensions/helpers/utils.ts
+++ b/tests/LSP17Extensions/helpers/utils.ts
@@ -2,23 +2,23 @@ import { ethers } from 'hardhat';
import { Create2Factory } from './Create2Factory';
import { EntryPoint__factory, EntryPoint } from '@account-abstraction/contracts';
-export const AddressZero = ethers.constants.AddressZero;
+export const AddressZero = ethers.ZeroAddress;
export function callDataCost(data: string): number {
- return ethers.utils
- .arrayify(data)
+ return ethers
+ .getBytes(data)
.map((x) => (x === 0 ? 4 : 16))
.reduce((sum, x) => sum + x);
}
export async function deployEntryPoint(provider = ethers.provider): Promise {
- const create2factory = new Create2Factory(provider);
+ const create2factory = new Create2Factory(provider as any);
const addr = await create2factory.deploy(
EntryPoint__factory.bytecode,
0,
- process.env.COVERAGE != null ? 20e6 : 8e6,
+ process.env.COVERAGE != null ? BigInt(20e6) : BigInt(8e6),
);
- return EntryPoint__factory.connect(addr, provider.getSigner());
+ return EntryPoint__factory.connect(addr, await provider.getSigner());
}
export async function getBalance(address: string): Promise {
diff --git a/tests/LSP1UniversalReceiver/LSP1UniversalReceiver.behaviour.ts b/tests/LSP1UniversalReceiver/LSP1UniversalReceiver.behaviour.ts
index 2f523a9c4..06a894e93 100644
--- a/tests/LSP1UniversalReceiver/LSP1UniversalReceiver.behaviour.ts
+++ b/tests/LSP1UniversalReceiver/LSP1UniversalReceiver.behaviour.ts
@@ -1,6 +1,6 @@
import { expect } from 'chai';
-import { ethers } from 'hardhat';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { parseEther } from 'ethers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
// types
import {
@@ -27,11 +27,16 @@ export type LSP1TestContext = {
export const shouldBehaveLikeLSP1 = (buildContext: () => Promise) => {
let context: LSP1TestContext;
+ let lsp1ImplementationAddress: string;
+ let lsp1CheckerAddress: string;
+
describe('when calling the `universalReceiver(...)` function', () => {
const valueSent = 0;
before(async () => {
context = await buildContext();
+ lsp1ImplementationAddress = await context.lsp1Implementation.getAddress();
+ lsp1CheckerAddress = await context.lsp1Checker.getAddress();
});
describe('from an EOA', () => {
@@ -67,14 +72,14 @@ export const shouldBehaveLikeLSP1 = (buildContext: () => Promise {
await expect(
context.lsp1Checker.checkImplementation(
- context.lsp1Implementation.address,
+ lsp1ImplementationAddress,
LSP1_HOOK_PLACEHOLDER,
),
)
.to.emit(context.lsp1Implementation, 'UniversalReceiver')
.withArgs(
// from
- context.lsp1Checker.address,
+ lsp1CheckerAddress,
// value
valueSent,
// typeId
@@ -91,14 +96,14 @@ export const shouldBehaveLikeLSP1 = (buildContext: () => Promise {
await expect(
context.lsp1Checker.checkImplementationLowLevelCall(
- context.lsp1Implementation.address,
+ lsp1ImplementationAddress,
LSP1_HOOK_PLACEHOLDER,
),
)
.to.emit(context.lsp1Implementation, 'UniversalReceiver')
.withArgs(
// from
- context.lsp1Checker.address,
+ lsp1CheckerAddress,
// value
valueSent,
// typeId
@@ -134,8 +139,8 @@ export const shouldBehaveLikeLSP1 = (buildContext: () => Promise Promise {
- const valueSent = ethers.utils.parseEther('3');
+ const valueSent = parseEther('3');
before(async () => {
context = await buildContext();
+ lsp1ImplementationAddress = await context.lsp1Implementation.getAddress();
+ lsp1CheckerAddress = await context.lsp1Checker.getAddress();
});
describe('from an EOA', () => {
@@ -185,8 +192,8 @@ export const shouldBehaveLikeLSP1 = (buildContext: () => Promise {
before(async () => {
await context.accounts[0].sendTransaction({
- to: context.lsp1Checker.address,
- value: ethers.utils.parseEther('50'),
+ to: lsp1CheckerAddress,
+ value: parseEther('50'),
});
});
@@ -194,7 +201,7 @@ export const shouldBehaveLikeLSP1 = (buildContext: () => Promise {
await expect(
context.lsp1Checker.checkImplementation(
- context.lsp1Implementation.address,
+ lsp1ImplementationAddress,
LSP1_HOOK_PLACEHOLDER,
{ value: valueSent },
),
@@ -202,7 +209,7 @@ export const shouldBehaveLikeLSP1 = (buildContext: () => Promise Promise {
await expect(
context.lsp1Checker.checkImplementationLowLevelCall(
- context.lsp1Implementation.address,
+ lsp1ImplementationAddress,
LSP1_HOOK_PLACEHOLDER,
{ value: valueSent },
),
@@ -227,7 +234,7 @@ export const shouldBehaveLikeLSP1 = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenA.interface.encodeFunctionData('mint', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'10',
false,
'0x',
@@ -338,7 +339,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenA.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenA.getAddress(), abi));
});
it('should register lsp5keys: arrayLength 1, index 0, tokenA address in UP1', async () => {
@@ -347,14 +348,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp7TokenA.address);
+ expect(elementAddress).to.equal(await lsp7TokenA.getAddress());
});
});
describe('when minting 10 tokenB to universalProfile1', () => {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('mint', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'10',
false,
'0x',
@@ -362,7 +363,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenB.getAddress(), abi));
});
it('should register lsp5keys: arrayLength 2, index 1, tokenB address in UP1', async () => {
@@ -371,14 +372,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
});
describe('when minting 10 of the same tokenB to universalProfile1', () => {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('mint', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'10',
false,
'0x',
@@ -386,7 +387,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenB.getAddress(), abi));
});
it('should keep the same lsp5keys: arrayLength 2, index 1, tokenB address in UP1', async () => {
@@ -395,14 +396,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
});
describe('when minting 10 tokenC to universalProfile1', () => {
before(async () => {
const abi = lsp7TokenC.interface.encodeFunctionData('mint', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'10',
false,
'0x',
@@ -410,7 +411,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenC.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenC.getAddress(), abi));
});
it('should register lsp5keys: arrayLength 3, index 2, tokenC address in UP1', async () => {
const [indexInMap, interfaceId, arrayLength, elementAddress] =
@@ -418,7 +419,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(2);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.THREE);
- expect(elementAddress).to.equal(lsp7TokenC.address);
+ expect(elementAddress).to.equal(await lsp7TokenC.getAddress());
});
});
});
@@ -431,7 +432,7 @@ export const shouldBehaveLikeLSP1Delegate = (
);
const abi = lsp7TokenC.interface.encodeFunctionData('burn', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'0',
'0x',
]);
@@ -439,13 +440,13 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(
context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenA.address, abi)),
+ .execute(callPayload(context.universalProfile1, await lsp7TokenA.getAddress(), abi)),
)
.to.emit(lsp7TokenA, 'Transfer')
.withArgs(
- context.universalProfile1.address,
- context.universalProfile1.address,
- ethers.constants.AddressZero,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile1.getAddress(),
+ ethers.ZeroAddress,
'0',
false,
'0x',
@@ -463,20 +464,21 @@ export const shouldBehaveLikeLSP1Delegate = (
describe('when burning 10 tokenC (last token) from universalProfile1', () => {
before(async () => {
const abi = lsp7TokenC.interface.encodeFunctionData('burn', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'10',
'0x',
]);
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenC.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenC.getAddress(), abi));
});
it('should update lsp5keys: arrayLength 2, no map, no tokenC address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenC.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenC.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000002',
@@ -491,14 +493,14 @@ export const shouldBehaveLikeLSP1Delegate = (
describe('when burning 10 tokenA (first token) from universalProfile1', () => {
before(async () => {
const abi = lsp7TokenA.interface.encodeFunctionData('burn', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'10',
'0x',
]);
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenA.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenA.getAddress(), abi));
});
it('should pop and swap TokenA with TokenB, lsp5keys (tokenB should become first token) : arrayLength 1, index = 0, tokenB address in UP1', async () => {
@@ -507,13 +509,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
it('should update lsp5keys: arrayLength 1, no map, no tokenA address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenA.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenA.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000001',
@@ -528,14 +531,14 @@ export const shouldBehaveLikeLSP1Delegate = (
describe('when burning 10 (half of the amount) tokenB from universalProfile1', () => {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('burn', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'10',
'0x',
]);
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenB.getAddress(), abi));
});
it('should keep the same lsp5keys: arrayLength 1, index 0, tokenB address in UP1', async () => {
const [indexInMap, interfaceId, arrayLength, elementAddress] =
@@ -543,26 +546,27 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
});
describe('when burning 10 (remaining) tokenB from universalProfile1', () => {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('burn', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'10',
'0x',
]);
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenB.getAddress(), abi));
});
it('should update lsp5keys: arrayLength 0, no map, no tokenB address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000000',
@@ -587,7 +591,7 @@ export const shouldBehaveLikeLSP1Delegate = (
.connect(context.accounts.random)
.transfer(
context.accounts.random.address,
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
false,
'0x',
@@ -597,7 +601,7 @@ export const shouldBehaveLikeLSP1Delegate = (
.withArgs(
context.accounts.random.address,
context.accounts.random.address,
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
false,
'0x',
@@ -615,15 +619,15 @@ export const shouldBehaveLikeLSP1Delegate = (
it('should fund the universalProfle with 10 tokens (each) to test token transfers (TokenA, TokenB, TokenC)', async () => {
await lsp7TokenA
.connect(context.accounts.random)
- .mint(context.universalProfile1.address, '10', false, '0x');
+ .mint(await context.universalProfile1.getAddress(), '10', false, '0x');
await lsp7TokenB
.connect(context.accounts.random)
- .mint(context.universalProfile1.address, '10', false, '0x');
+ .mint(await context.universalProfile1.getAddress(), '10', false, '0x');
await lsp7TokenC
.connect(context.accounts.random)
- .mint(context.universalProfile1.address, '10', false, '0x');
+ .mint(await context.universalProfile1.getAddress(), '10', false, '0x');
});
it('should register lsp5keys: arrayLength 3, index [1,2,3], [tokenA, tokenB, tokenC] addresses in UP1 ', async () => {
@@ -643,16 +647,16 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(interfaceIdTokenA).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(interfaceIdTokenB).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(interfaceIdTokenC).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
- expect(elementAddressTokenA).to.equal(lsp7TokenA.address);
- expect(elementAddressTokenB).to.equal(lsp7TokenB.address);
- expect(elementAddressTokenC).to.equal(lsp7TokenC.address);
+ expect(elementAddressTokenA).to.equal(await lsp7TokenA.getAddress());
+ expect(elementAddressTokenB).to.equal(await lsp7TokenB.getAddress());
+ expect(elementAddressTokenC).to.equal(await lsp7TokenC.getAddress());
});
describe('When transferring 10 (all) token A from UP1 to UP2', () => {
before(async () => {
const abi = lsp7TokenA.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
'10',
false,
'0x',
@@ -660,7 +664,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenA.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenA.getAddress(), abi));
});
it('should pop and swap TokenA with TokenC, lsp5keys (tokenC should become first token) : arrayLength 1, index = 0, tokenC address in UP1', async () => {
@@ -669,13 +673,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenC.address);
+ expect(elementAddress).to.equal(await lsp7TokenC.getAddress());
});
it('should update lsp5keys: arrayLength 2, no map, no tokenA address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenA.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenA.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000002',
@@ -692,15 +697,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp7TokenA.address);
+ expect(elementAddress).to.equal(await lsp7TokenA.getAddress());
});
});
describe('When transferring 5 (half of amount) token B from UP1 to UP2', () => {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
'5',
false,
'0x',
@@ -708,7 +713,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenB.getAddress(), abi));
});
it('should keep the same lsp5keys : arrayLength 2, index = 1, tokenB address in UP1', async () => {
@@ -717,7 +722,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
it('should register lsp5keys: arrayLength 2, index 1, tokenB address in UP2', async () => {
@@ -726,15 +731,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
});
describe('When transferring 4 (few) token B from UP1 to UP2', () => {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
'4',
false,
'0x',
@@ -742,7 +747,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenB.getAddress(), abi));
});
it('should keep the same lsp5keys : arrayLength 2, index = 1, tokenB address in UP1', async () => {
@@ -751,7 +756,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
it('should keep the same lsp5keys : arrayLength 2, index = 1, tokenB address in UP2', async () => {
@@ -760,15 +765,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
});
describe('When transferring 1 (remaining) token B from UP1 to UP2', () => {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
'1',
false,
'0x',
@@ -776,13 +781,14 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenB.getAddress(), abi));
});
it('should update lsp5keys (no pop and swap as TokenB has the last index): arrayLength 1, no map, no tokenB address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000001',
@@ -799,15 +805,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
});
describe('When transferring 10 (all) token C from UP1 to UP2', () => {
before(async () => {
const abi = lsp7TokenC.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
'10',
false,
'0x',
@@ -815,13 +821,14 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenC.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenC.getAddress(), abi));
});
it('should update lsp5keys (no pop and swap as TokenC has the last index): arrayLength 0, no map, no tokenB address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000001',
@@ -838,15 +845,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(2);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.THREE);
- expect(elementAddress).to.equal(lsp7TokenC.address);
+ expect(elementAddress).to.equal(await lsp7TokenC.getAddress());
});
});
describe('When transferring 1 (few) token B from UP2 to UP1', () => {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('transfer', [
- context.universalProfile2.address,
- context.universalProfile1.address,
+ await context.universalProfile2.getAddress(),
+ await context.universalProfile1.getAddress(),
'1',
false,
'0x',
@@ -854,7 +861,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager2
.connect(context.accounts.owner2)
- .execute(callPayload(context.universalProfile2, lsp7TokenB.address, abi));
+ .execute(callPayload(context.universalProfile2, await lsp7TokenB.getAddress(), abi));
});
it('should register lsp5keys (UP1 able to re-register keys) : arrayLength 1, index = 0, tokenB address in UP1', async () => {
@@ -863,7 +870,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
});
});
@@ -871,44 +878,44 @@ export const shouldBehaveLikeLSP1Delegate = (
describe('when removing all keys', () => {
before(async () => {
const abi1 = lsp7TokenB.interface.encodeFunctionData('burn', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
'1',
'0x',
]);
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp7TokenB.address, abi1));
+ .execute(callPayload(context.universalProfile1, await lsp7TokenB.getAddress(), abi1));
const abi2 = lsp7TokenB.interface.encodeFunctionData('burn', [
- context.universalProfile2.address,
+ await context.universalProfile2.getAddress(),
'9',
'0x',
]);
await context.lsp6KeyManager2
.connect(context.accounts.owner2)
- .execute(callPayload(context.universalProfile2, lsp7TokenB.address, abi2));
+ .execute(callPayload(context.universalProfile2, await lsp7TokenB.getAddress(), abi2));
const abi3 = lsp7TokenA.interface.encodeFunctionData('burn', [
- context.universalProfile2.address,
+ await context.universalProfile2.getAddress(),
'10',
'0x',
]);
await context.lsp6KeyManager2
.connect(context.accounts.owner2)
- .execute(callPayload(context.universalProfile2, lsp7TokenA.address, abi3));
+ .execute(callPayload(context.universalProfile2, await lsp7TokenA.getAddress(), abi3));
const abi4 = lsp7TokenC.interface.encodeFunctionData('burn', [
- context.universalProfile2.address,
+ await context.universalProfile2.getAddress(),
'10',
'0x',
]);
await context.lsp6KeyManager2
.connect(context.accounts.owner2)
- .execute(callPayload(context.universalProfile2, lsp7TokenC.address, abi4));
+ .execute(callPayload(context.universalProfile2, await lsp7TokenC.getAddress(), abi4));
});
it('should remove all lsp5 keys on both UP', async () => {
const arrayLengthUP1 = await context.universalProfile1['getData(bytes32)'](
@@ -938,7 +945,7 @@ export const shouldBehaveLikeLSP1Delegate = (
it("should not revert and return 'LSP5: Error generating data key/value pairs' with empty LSP7 token transfer", async () => {
const txParams = {
- from: context.universalProfile1.address,
+ from: await context.universalProfile1.getAddress(),
to: context.accounts.random.address,
amount: 0,
allowedNonLSP1Recipient: true,
@@ -955,7 +962,7 @@ export const shouldBehaveLikeLSP1Delegate = (
const executePayload = context.universalProfile1.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- lsp7Token.address,
+ await lsp7Token.getAddress(),
0,
emptyTokenTransferPayload,
]);
@@ -964,12 +971,7 @@ export const shouldBehaveLikeLSP1Delegate = (
const expectedReturnedValues = abiCoder.encode(
['bytes', 'bytes'],
- [
- ethers.utils.hexlify(
- ethers.utils.toUtf8Bytes('LSP5: Error generating data key/value pairs'),
- ),
- '0x',
- ],
+ [ethers.hexlify(ethers.toUtf8Bytes('LSP5: Error generating data key/value pairs')), '0x'],
);
// the call to the universalReceiver(...) in LSP7 sends the transfer details as `data` argument
@@ -977,7 +979,7 @@ export const shouldBehaveLikeLSP1Delegate = (
const expectedReceivedData = abiCoder.encode(
['address', 'address', 'address', 'uint256', 'bytes'],
[
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
txParams.from,
txParams.to,
txParams.amount,
@@ -990,7 +992,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(tx)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- lsp7Token.address,
+ await lsp7Token.getAddress(),
0,
LSP1_TYPE_IDS.LSP7Tokens_SenderNotification,
expectedReceivedData,
@@ -1020,7 +1022,7 @@ export const shouldBehaveLikeLSP1Delegate = (
// check that it does not revert
await expect(
await notTokenContractWithBalanceOfFunction.call(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
),
@@ -1028,8 +1030,8 @@ export const shouldBehaveLikeLSP1Delegate = (
// check that it returns the correct string
const universalReceiverResult =
- await notTokenContractWithBalanceOfFunction.callStatic.call(
- context.universalProfile1.address,
+ await notTokenContractWithBalanceOfFunction.call.staticCall(
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
);
@@ -1039,20 +1041,20 @@ export const shouldBehaveLikeLSP1Delegate = (
const [resultDelegate] = abiCoder.decode(['bytes', 'bytes'], genericExecutorResult);
expect(resultDelegate).to.equal(
- ethers.utils.hexlify(ethers.utils.toUtf8Bytes('LSP1: full balance is not sent')),
+ ethers.hexlify(ethers.toUtf8Bytes('LSP1: full balance is not sent')),
);
// check that the correct string is emitted in the event
await expect(
notTokenContractWithBalanceOfFunction.call(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
),
)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- notTokenContractWithBalanceOfFunction.address,
+ notTokenContractWithBalanceOfFunction.getAddress(),
0,
LSP1_TYPE_IDS.LSP7Tokens_SenderNotification,
'0x',
@@ -1071,15 +1073,15 @@ export const shouldBehaveLikeLSP1Delegate = (
// check that it does not revert
await expect(
await notTokenContract.call(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
),
).to.not.be.reverted;
// check that it returns the correct string
- const universalReceiverResult = await notTokenContract.callStatic.call(
- context.universalProfile1.address,
+ const universalReceiverResult = await notTokenContract.call.staticCall(
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
);
@@ -1089,18 +1091,20 @@ export const shouldBehaveLikeLSP1Delegate = (
const [resultDelegate] = abiCoder.decode(['bytes', 'bytes'], genericExecutorResult);
expect(resultDelegate).to.equal(
- ethers.utils.hexlify(
- ethers.utils.toUtf8Bytes('LSP1: `balanceOf(address)` function not found'),
- ),
+ ethers.hexlify(ethers.toUtf8Bytes('LSP1: `balanceOf(address)` function not found')),
);
// check that the correct string is emitted in the event
await expect(
- notTokenContract.call(context.universalProfile1.address, 0, universalReceiverPayload),
+ notTokenContract.call(
+ await context.universalProfile1.getAddress(),
+ 0,
+ universalReceiverPayload,
+ ),
)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- notTokenContract.address,
+ await notTokenContract.getAddress(),
0,
LSP1_TYPE_IDS.LSP7Tokens_SenderNotification,
'0x',
@@ -1131,19 +1135,20 @@ export const shouldBehaveLikeLSP1Delegate = (
arrayKey = ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length;
arrayIndexKey = ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '0'.repeat(32);
- assetMapKey = ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + token.address.substring(2);
+ assetMapKey =
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + (await token.getAddress()).substring(2);
});
describe('when `LSP5ReceivedAssets[]` length value is `max(uint128)`', () => {
const lsp5ArrayLengthDataKey = ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length;
// set the `LSP5ReceivedAssets[]` length value to the max(uint128)`
- const lsp5ArrayLengthDataValue = ethers.BigNumber.from(2).pow(128).sub(1);
+ const lsp5ArrayLengthDataValue = '0xffffffffffffffffffffffffffffffff';
before(async () => {
const setDataPayload = context.universalProfile1.interface.encodeFunctionData('setData', [
lsp5ArrayLengthDataKey,
- lsp5ArrayLengthDataValue.toHexString(),
+ lsp5ArrayLengthDataValue,
]);
await context.lsp6KeyManager1.connect(context.accounts.owner1).execute(setDataPayload);
@@ -1157,18 +1162,18 @@ export const shouldBehaveLikeLSP1Delegate = (
it('should revert when trying to transfer some tokens to UP but UP cannot register any more tokens', async () => {
// try to transfer (= mint) some tokens to the UP
// this should revert because the UP cannot register any more tokens
- await expect(token.mint(context.universalProfile1.address, 10_000, false, '0x'))
+ await expect(token.mint(await context.universalProfile1.getAddress(), 10_000, false, '0x'))
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- token.address,
+ await token.getAddress(),
0,
LSP1_TYPE_IDS.LSP7Tokens_RecipientNotification,
abiCoder.encode(
['address', 'address', 'address', 'uint256', 'bytes'],
[
context.accounts.random.address,
- ethers.constants.AddressZero,
- context.universalProfile1.address,
+ ethers.ZeroAddress,
+ await context.universalProfile1.getAddress(),
10_000,
'0x',
],
@@ -1176,10 +1181,7 @@ export const shouldBehaveLikeLSP1Delegate = (
abiCoder.encode(
['bytes', 'bytes'],
[
- ethers.utils.solidityPack(
- ['string'],
- ['LSP5: Error generating data key/value pairs'],
- ),
+ ethers.solidityPacked(['string'], ['LSP5: Error generating data key/value pairs']),
'0x',
],
),
@@ -1191,12 +1193,13 @@ export const shouldBehaveLikeLSP1Delegate = (
const lsp5ArrayLengthDataKey = ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length;
// set the `LSP5ReceivedAssets[]` length value to the max(uint128)`
- const lsp5ArrayLengthDataValue = ethers.BigNumber.from(2).pow(128).sub(2);
+ const lsp5ArrayLengthDataValue =
+ ethers.toBigInt('0xffffffffffffffffffffffffffffffff') - BigInt(2);
before(async () => {
const setDataPayload = context.universalProfile1.interface.encodeFunctionData('setData', [
lsp5ArrayLengthDataKey,
- lsp5ArrayLengthDataValue.toHexString(),
+ ethers.toBeHex(lsp5ArrayLengthDataValue),
]);
await context.lsp6KeyManager1.connect(context.accounts.owner1).execute(setDataPayload);
@@ -1215,7 +1218,8 @@ export const shouldBehaveLikeLSP1Delegate = (
[
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00'.repeat(16),
- ERC725YDataKeys.LSP5['LSP5ReceivedAssetsMap'] + token.address.substring(2),
+ ERC725YDataKeys.LSP5['LSP5ReceivedAssetsMap'] +
+ (await token.getAddress()).substring(2),
],
['0x', '0x', '0x'],
],
@@ -1227,50 +1231,50 @@ export const shouldBehaveLikeLSP1Delegate = (
it('should not revert when trying to transfer some tokens to UP and UP (can register ONLY ONE MORE more tokens)', async () => {
// try to transfer (= mint) some tokens to the UP
// this should not revert because the UP can register one more asset
- await token.mint(context.universalProfile1.address, 10_000, false, '0x');
+ await token.mint(await context.universalProfile1.getAddress(), 10_000, false, '0x');
// check the `LSP5ReceivedAssets[]` length value was set correctly
expect(await context.universalProfile1.getData(lsp5ArrayLengthDataKey)).to.equal(
- lsp5ArrayLengthDataValue.add(1),
+ lsp5ArrayLengthDataValue + BigInt(1),
);
- const index = lsp5ArrayLengthDataValue.toHexString();
+ const index = ethers.toBeHex(lsp5ArrayLengthDataValue);
const lsp5ArrayIndexDataKey =
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + index.substring(2);
// checksummed address of the token
- const storedAssetAddress = ethers.utils.getAddress(
+ const storedAssetAddress = ethers.getAddress(
await context.universalProfile1.getData(lsp5ArrayIndexDataKey),
);
// Check the address of the token was added to the `LSP5ReceivedAssets[maxLength - 1]` key
- expect(storedAssetAddress).to.equal(token.address);
+ expect(storedAssetAddress).to.equal(await token.getAddress());
// Check that the correct tuple (interfaceId, index) was set under LSP5ReceivedAssetsMap + token address
expect(
await context.universalProfile1.getData(
- ERC725YDataKeys.LSP5['LSP5ReceivedAssetsMap'] + token.address.substring(2),
+ ERC725YDataKeys.LSP5['LSP5ReceivedAssetsMap'] + (await token.getAddress()).substring(2),
),
).to.equal(
- ethers.utils.solidityPack(['bytes4', 'uint128'], [INTERFACE_IDS.LSP7DigitalAsset, index]),
+ ethers.solidityPacked(['bytes4', 'uint128'], [INTERFACE_IDS.LSP7DigitalAsset, index]),
);
});
});
describe('when the Map value of LSP5ReceivedAssetsMap is less than 20 bytes', () => {
- let tokenTransferTx: Transaction;
- let balance: BigNumber;
+ let tokenTransferTx: ContractTransaction;
+ let balance: bigint;
before(async () => {
await token
.connect(context.accounts.owner1)
- .mint(context.universalProfile1.address, 100, false, '0x');
+ .mint(await context.universalProfile1.getAddress(), 100, false, '0x');
await context.universalProfile1
.connect(context.accounts.owner1)
.setData(
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + token.address.substring(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + (await token.getAddress()).substring(2),
'0xcafecafecafecafe',
);
@@ -1278,14 +1282,14 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xcafecafecafecafe',
]);
- balance = await token.balanceOf(context.universalProfile1.address);
+ balance = await token.balanceOf(await context.universalProfile1.getAddress());
const tokenTransferCalldata = token.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
context.accounts.owner1.address,
balance,
true,
@@ -1294,7 +1298,7 @@ export const shouldBehaveLikeLSP1Delegate = (
tokenTransferTx = await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, token.address, 0, tokenTransferCalldata);
+ .execute(OPERATION_TYPES.CALL, await token.getAddress(), 0, tokenTransferCalldata);
});
it('should pass', async () => {
@@ -1302,20 +1306,20 @@ export const shouldBehaveLikeLSP1Delegate = (
});
it('should emit UniversalReceiver event', async () => {
- const tokensSentBytes32Value = ethers.utils.hexZeroPad(balance.toHexString(), 32);
+ const tokensSentBytes32Value = ethers.zeroPadValue(ethers.toBeHex(balance), 32);
const tokenTransferData = abiCoder.encode(
['address', 'address', 'address', 'uint256', 'bytes'],
[
- context.universalProfile1.address,
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile1.getAddress(),
context.accounts.owner1.address,
tokensSentBytes32Value,
'0x',
],
);
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP5: Error generating data key/value pairs', '0x'],
);
@@ -1323,7 +1327,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(tokenTransferTx)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- token.address,
+ await token.getAddress(),
0,
LSP1_TYPE_IDS.LSP7Tokens_SenderNotification,
tokenTransferData,
@@ -1336,25 +1340,25 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xcafecafecafecafe',
]);
});
});
describe('when the Map value of LSP5ReceivedAssetsMap is bigger than 20 bytes, (valid `(byte4,uint128)` tuple + extra bytes)', () => {
- let tokenTransferTx: Transaction;
- let balance: BigNumber;
+ let tokenTransferTx: ContractTransaction;
+ let balance: bigint;
before(async () => {
await token
.connect(context.accounts.owner1)
- .mint(context.universalProfile1.address, 100, false, '0x');
+ .mint(await context.universalProfile1.getAddress(), 100, false, '0x');
await context.universalProfile1
.connect(context.accounts.owner1)
.setData(
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + token.address.substring(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + (await token.getAddress()).substring(2),
'0xb3c4928f00000000000000000000000000000000cafecafe',
);
@@ -1362,14 +1366,14 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xb3c4928f00000000000000000000000000000000cafecafe',
]);
- balance = await token.balanceOf(context.universalProfile1.address);
+ balance = await token.balanceOf(await context.universalProfile1.getAddress());
const tokenTransferCalldata = token.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
context.accounts.owner1.address,
balance,
true,
@@ -1378,7 +1382,7 @@ export const shouldBehaveLikeLSP1Delegate = (
tokenTransferTx = await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, token.address, 0, tokenTransferCalldata);
+ .execute(OPERATION_TYPES.CALL, await token.getAddress(), 0, tokenTransferCalldata);
});
it('should pass', async () => {
@@ -1386,20 +1390,20 @@ export const shouldBehaveLikeLSP1Delegate = (
});
it('should emit UniversalReceiver event', async () => {
- const tokensSentBytes32Value = ethers.utils.hexZeroPad(balance.toHexString(), 32);
+ const tokensSentBytes32Value = ethers.zeroPadValue(ethers.toBeHex(balance), 32);
const tokenTransferData = abiCoder.encode(
['address', 'address', 'address', 'uint256', 'bytes'],
[
- context.universalProfile1.address,
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile1.getAddress(),
context.accounts.owner1.address,
tokensSentBytes32Value,
'0x',
],
);
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP5: Error generating data key/value pairs', '0x'],
);
@@ -1407,7 +1411,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(tokenTransferTx)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- token.address,
+ await token.getAddress(),
0,
LSP1_TYPE_IDS.LSP7Tokens_SenderNotification,
tokenTransferData,
@@ -1424,25 +1428,25 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xb3c4928f00000000000000000000000000000000cafecafe',
]);
});
});
describe('when the Map value of LSP5ReceivedAssetsMap is 20 random bytes', () => {
- let tokenTransferTx: Transaction;
- let balance: BigNumber;
+ let tokenTransferTx: ContractTransaction;
+ let balance: bigint;
before(async () => {
await token
.connect(context.accounts.owner1)
- .mint(context.universalProfile1.address, 100, false, '0x');
+ .mint(await context.universalProfile1.getAddress(), 100, false, '0x');
await context.universalProfile1
.connect(context.accounts.owner1)
.setData(
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + token.address.substring(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + (await token.getAddress()).substring(2),
'0xcafecafecafecafecafecafecafecafecafecafe',
);
@@ -1450,14 +1454,14 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xcafecafecafecafecafecafecafecafecafecafe',
]);
- balance = await token.balanceOf(context.universalProfile1.address);
+ balance = await token.balanceOf(await context.universalProfile1.getAddress());
const tokenTransferCalldata = token.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
context.accounts.owner1.address,
balance,
true,
@@ -1466,7 +1470,7 @@ export const shouldBehaveLikeLSP1Delegate = (
tokenTransferTx = await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, token.address, 0, tokenTransferCalldata);
+ .execute(OPERATION_TYPES.CALL, await token.getAddress(), 0, tokenTransferCalldata);
});
it('should pass', async () => {
@@ -1474,20 +1478,20 @@ export const shouldBehaveLikeLSP1Delegate = (
});
it('should emit UniversalReceiver event', async () => {
- const tokensSentBytes32Value = ethers.utils.hexZeroPad(balance.toHexString(), 32);
+ const tokensSentBytes32Value = ethers.zeroPadValue(ethers.toBeHex(balance), 32);
const tokenTransferData = abiCoder.encode(
['address', 'address', 'address', 'uint256', 'bytes'],
[
- context.universalProfile1.address,
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile1.getAddress(),
context.accounts.owner1.address,
tokensSentBytes32Value,
'0x',
],
);
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP5: Error generating data key/value pairs', '0x'],
);
@@ -1495,7 +1499,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(tokenTransferTx)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- token.address,
+ await token.getAddress(),
0,
LSP1_TYPE_IDS.LSP7Tokens_SenderNotification,
tokenTransferData,
@@ -1508,7 +1512,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xcafecafecafecafecafecafecafecafecafecafe',
]);
});
@@ -1532,27 +1536,27 @@ export const shouldBehaveLikeLSP1Delegate = (
arrayKey = ERC725YDataKeys.LSP10['LSP10Vaults[]'].length;
arrayIndexKey = ERC725YDataKeys.LSP10['LSP10Vaults[]'].index + '0'.repeat(32);
- vaultMapKey = ERC725YDataKeys.LSP10.LSP10VaultsMap + vault.address.substring(2);
+ vaultMapKey = ERC725YDataKeys.LSP10.LSP10VaultsMap + (await vault.getAddress()).substring(2);
});
describe('when the Map value of LSP10VaultsMap is less than 20 bytes', () => {
- let acceptOwnershipTx: Transaction;
+ let acceptOwnershipTx: ContractTransaction;
before(async () => {
await vault
.connect(context.accounts.owner1)
- .transferOwnership(context.universalProfile1.address);
+ .transferOwnership(await context.universalProfile1.getAddress());
const acceptOwnershipCalldata = vault.interface.encodeFunctionData('acceptOwnership');
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, vault.address, 0, acceptOwnershipCalldata);
+ .execute(OPERATION_TYPES.CALL, await vault.getAddress(), 0, acceptOwnershipCalldata);
await context.universalProfile1
.connect(context.accounts.owner1)
.setData(
- ERC725YDataKeys.LSP10.LSP10VaultsMap + vault.address.substring(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await vault.getAddress()).substring(2),
'0xcafecafecafecafe',
);
@@ -1560,7 +1564,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, vaultMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- vault.address.toLowerCase(),
+ (await vault.getAddress()).toLowerCase(),
'0xcafecafecafecafe',
]);
@@ -1570,7 +1574,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, vault.address, 0, vaultTrasferCalldata);
+ .execute(OPERATION_TYPES.CALL, await vault.getAddress(), 0, vaultTrasferCalldata);
acceptOwnershipTx = await vault.connect(context.accounts.owner1).acceptOwnership();
});
@@ -1580,7 +1584,7 @@ export const shouldBehaveLikeLSP1Delegate = (
});
it('it should emit UniversalReceiver event', async () => {
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP10: Error generating data key/value pairs', '0x'],
);
@@ -1588,12 +1592,12 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(acceptOwnershipTx)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- vault.address,
+ await vault.getAddress(),
0,
LSP1_TYPE_IDS.LSP9OwnershipTransferred_SenderNotification,
abiCoder.encode(
['address', 'address'],
- [context.universalProfile1.address, context.accounts.owner1.address],
+ [await context.universalProfile1.getAddress(), context.accounts.owner1.address],
),
lsp1ReturnedData,
);
@@ -1604,30 +1608,30 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, vaultMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- vault.address.toLowerCase(),
+ (await vault.getAddress()).toLowerCase(),
'0xcafecafecafecafe',
]);
});
});
describe('when the Map value of LSP10VaultsMap is bigger than 20 bytes, (valid `(byte4,uint128)` tuple + extra bytes)', () => {
- let acceptOwnershipTx: Transaction;
+ let acceptOwnershipTx: ContractTransaction;
before(async () => {
await vault
.connect(context.accounts.owner1)
- .transferOwnership(context.universalProfile1.address);
+ .transferOwnership(await context.universalProfile1.getAddress());
const acceptOwnershipCalldata = vault.interface.encodeFunctionData('acceptOwnership');
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, vault.address, 0, acceptOwnershipCalldata);
+ .execute(OPERATION_TYPES.CALL, await vault.getAddress(), 0, acceptOwnershipCalldata);
await context.universalProfile1
.connect(context.accounts.owner1)
.setData(
- ERC725YDataKeys.LSP10.LSP10VaultsMap + vault.address.substring(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await vault.getAddress()).substring(2),
'0x28af17e600000000000000000000000000000000cafecafe',
);
@@ -1635,11 +1639,11 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([
ERC725YDataKeys.LSP10['LSP10Vaults[]'].length,
ERC725YDataKeys.LSP10['LSP10Vaults[]'].index + '0'.repeat(32),
- ERC725YDataKeys.LSP10.LSP10VaultsMap + vault.address.substring(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await vault.getAddress()).substring(2),
]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- vault.address.toLowerCase(),
+ (await vault.getAddress()).toLowerCase(),
'0x28af17e600000000000000000000000000000000cafecafe',
]);
@@ -1649,7 +1653,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, vault.address, 0, vaultTrasferCalldata);
+ .execute(OPERATION_TYPES.CALL, await vault.getAddress(), 0, vaultTrasferCalldata);
acceptOwnershipTx = await vault.connect(context.accounts.owner1).acceptOwnership();
});
@@ -1659,7 +1663,7 @@ export const shouldBehaveLikeLSP1Delegate = (
});
it('it should emit UniversalReceiver event', async () => {
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP10: Error generating data key/value pairs', '0x'],
);
@@ -1667,12 +1671,12 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(acceptOwnershipTx)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- vault.address,
+ await vault.getAddress(),
0,
LSP1_TYPE_IDS.LSP9OwnershipTransferred_SenderNotification,
abiCoder.encode(
['address', 'address'],
- [context.universalProfile1.address, context.accounts.owner1.address],
+ [await context.universalProfile1.getAddress(), context.accounts.owner1.address],
),
lsp1ReturnedData,
);
@@ -1686,34 +1690,34 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([
ERC725YDataKeys.LSP10['LSP10Vaults[]'].length,
ERC725YDataKeys.LSP10['LSP10Vaults[]'].index + '0'.repeat(32),
- ERC725YDataKeys.LSP10.LSP10VaultsMap + vault.address.substring(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await vault.getAddress()).substring(2),
]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- vault.address.toLowerCase(),
+ (await vault.getAddress()).toLowerCase(),
'0x28af17e600000000000000000000000000000000cafecafe',
]);
});
});
describe('when the Map value of LSP10VaultsMap is 20 random bytes', () => {
- let acceptOwnershipTx: Transaction;
+ let acceptOwnershipTx: ContractTransaction;
before(async () => {
await vault
.connect(context.accounts.owner1)
- .transferOwnership(context.universalProfile1.address);
+ .transferOwnership(await context.universalProfile1.getAddress());
const acceptOwnershipCalldata = vault.interface.encodeFunctionData('acceptOwnership');
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, vault.address, 0, acceptOwnershipCalldata);
+ .execute(OPERATION_TYPES.CALL, await vault.getAddress(), 0, acceptOwnershipCalldata);
await context.universalProfile1
.connect(context.accounts.owner1)
.setData(
- ERC725YDataKeys.LSP10.LSP10VaultsMap + vault.address.substring(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await vault.getAddress()).substring(2),
'0xcafecafecafecafecafecafecafecafecafecafe',
);
@@ -1721,11 +1725,11 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([
ERC725YDataKeys.LSP10['LSP10Vaults[]'].length,
ERC725YDataKeys.LSP10['LSP10Vaults[]'].index + '0'.repeat(32),
- ERC725YDataKeys.LSP10.LSP10VaultsMap + vault.address.substring(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await vault.getAddress()).substring(2),
]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- vault.address.toLowerCase(),
+ (await vault.getAddress()).toLowerCase(),
'0xcafecafecafecafecafecafecafecafecafecafe',
]);
@@ -1735,7 +1739,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, vault.address, 0, vaultTrasferCalldata);
+ .execute(OPERATION_TYPES.CALL, await vault.getAddress(), 0, vaultTrasferCalldata);
acceptOwnershipTx = await vault.connect(context.accounts.owner1).acceptOwnership();
});
@@ -1745,7 +1749,7 @@ export const shouldBehaveLikeLSP1Delegate = (
});
it('it should emit UniversalReceiver event', async () => {
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP10: Error generating data key/value pairs', '0x'],
);
@@ -1753,12 +1757,12 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(acceptOwnershipTx)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- vault.address,
+ await vault.getAddress(),
0,
LSP1_TYPE_IDS.LSP9OwnershipTransferred_SenderNotification,
abiCoder.encode(
['address', 'address'],
- [context.universalProfile1.address, context.accounts.owner1.address],
+ [await context.universalProfile1.getAddress(), context.accounts.owner1.address],
),
lsp1ReturnedData,
);
@@ -1769,7 +1773,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.universalProfile1.getDataBatch([arrayKey, arrayIndexKey, vaultMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- vault.address.toLowerCase(),
+ (await vault.getAddress()).toLowerCase(),
'0xcafecafecafecafecafecafecafecafecafecafe',
]);
});
@@ -1809,7 +1813,7 @@ export const shouldBehaveLikeLSP1Delegate = (
describe('when minting tokenId 1 of tokenA to universalProfile1', () => {
before(async () => {
const abi = lsp8TokenA.interface.encodeFunctionData('mint', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1817,7 +1821,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenA.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenA.getAddress(), abi));
});
it('should register lsp5keys: arrayLength 1, index 0, tokenA address in UP1', async () => {
@@ -1826,14 +1830,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp8TokenA.address);
+ expect(elementAddress).to.equal(await lsp8TokenA.getAddress());
});
});
describe('when minting tokenId 1 of tokenB to universalProfile1', () => {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('mint', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1841,7 +1845,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenB.getAddress(), abi));
});
it('should register lsp5keys: arrayLength 2, index 1, tokenB address in UP1', async () => {
const [indexInMap, interfaceId, arrayLength, elementAddress] =
@@ -1849,14 +1853,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
});
describe('when minting tokenId 2 of tokenB (another) to universalProfile1', () => {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('mint', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
TOKEN_ID.TWO,
false,
'0x',
@@ -1864,7 +1868,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenB.getAddress(), abi));
});
it('should keep the same lsp5keys: arrayLength 2, index 1, tokenB address in UP1', async () => {
const [indexInMap, interfaceId, arrayLength, elementAddress] =
@@ -1872,14 +1876,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
});
describe('when minting tokenId 1 of tokenC to universalProfile1', () => {
before(async () => {
const abi = lsp8TokenC.interface.encodeFunctionData('mint', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1887,7 +1891,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenC.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenC.getAddress(), abi));
});
it('should register lsp5keys: arrayLength 3, index 2, tokenC address in UP1', async () => {
const [indexInMap, interfaceId, arrayLength, elementAddress] =
@@ -1895,7 +1899,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(2);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.THREE);
- expect(elementAddress).to.equal(lsp8TokenC.address);
+ expect(elementAddress).to.equal(await lsp8TokenC.getAddress());
});
});
});
@@ -1907,12 +1911,13 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenC.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenC.getAddress(), abi));
});
it('should update lsp5keys: arrayLength 2, no map, no tokenC address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenC.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenC.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000002',
@@ -1930,7 +1935,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenA.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenA.getAddress(), abi));
});
it('should pop and swap TokenA with TokenB, lsp5keys (tokenB should become first token) : arrayLength 1, index = 0, tokenB address in UP1', async () => {
@@ -1939,13 +1944,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
it('should update lsp5keys: arrayLength 1, no map, no tokenA address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenA.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenA.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000001',
@@ -1963,7 +1969,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenB.getAddress(), abi));
});
it('should keep the same lsp5keys: arrayLength 1, index 0, tokenB address in UP1', async () => {
const [indexInMap, interfaceId, arrayLength, elementAddress] =
@@ -1971,7 +1977,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
});
@@ -1981,12 +1987,13 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenB.getAddress(), abi));
});
it('should update lsp5keys: arrayLength 0, no map, no tokenB address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000000',
@@ -2004,23 +2011,23 @@ export const shouldBehaveLikeLSP1Delegate = (
// 1 tokenId of TokenA
await lsp8TokenA
.connect(context.accounts.random)
- .mint(context.universalProfile1.address, TOKEN_ID.ONE, false, '0x');
+ .mint(await context.universalProfile1.getAddress(), TOKEN_ID.ONE, false, '0x');
// 3 tokenIds of TokenB
await lsp8TokenB
.connect(context.accounts.random)
- .mint(context.universalProfile1.address, TOKEN_ID.ONE, false, '0x');
+ .mint(await context.universalProfile1.getAddress(), TOKEN_ID.ONE, false, '0x');
await lsp8TokenB
.connect(context.accounts.random)
- .mint(context.universalProfile1.address, TOKEN_ID.TWO, false, '0x');
+ .mint(await context.universalProfile1.getAddress(), TOKEN_ID.TWO, false, '0x');
await lsp8TokenB
.connect(context.accounts.random)
- .mint(context.universalProfile1.address, TOKEN_ID.THREE, false, '0x');
+ .mint(await context.universalProfile1.getAddress(), TOKEN_ID.THREE, false, '0x');
// 1 tokenId of TokenC
await lsp8TokenC
.connect(context.accounts.random)
- .mint(context.universalProfile1.address, TOKEN_ID.ONE, false, '0x');
+ .mint(await context.universalProfile1.getAddress(), TOKEN_ID.ONE, false, '0x');
});
it('should register lsp5keys: arrayLength 3, index [1,2,3], [tokenA, tokenB, tokenC] addresses in UP1 ', async () => {
@@ -2040,16 +2047,16 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(interfaceIdTokenA).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(interfaceIdTokenB).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(interfaceIdTokenC).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
- expect(elementAddressTokenA).to.equal(lsp8TokenA.address);
- expect(elementAddressTokenB).to.equal(lsp8TokenB.address);
- expect(elementAddressTokenC).to.equal(lsp8TokenC.address);
+ expect(elementAddressTokenA).to.equal(await lsp8TokenA.getAddress());
+ expect(elementAddressTokenB).to.equal(await lsp8TokenB.getAddress());
+ expect(elementAddressTokenC).to.equal(await lsp8TokenC.getAddress());
});
describe('When transferring tokenId 1 (all) of token A from UP1 to UP2', () => {
before(async () => {
const abi = lsp8TokenA.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -2057,7 +2064,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenA.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenA.getAddress(), abi));
});
it('should pop and swap TokenA with TokenC, lsp5keys (tokenC should become first token) : arrayLength 1, index = 0, tokenC address in UP1', async () => {
@@ -2066,13 +2073,14 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp8TokenC.address);
+ expect(elementAddress).to.equal(await lsp8TokenC.getAddress());
});
it('should update lsp5keys: arrayLength 2, no map, no tokenA address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenA.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenA.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000002',
@@ -2089,15 +2097,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp8TokenA.address);
+ expect(elementAddress).to.equal(await lsp8TokenA.getAddress());
});
});
describe('When transferring tokenId 1 (not all balance) of token B from UP1 to UP2', () => {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -2105,7 +2113,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenB.getAddress(), abi));
});
it('should keep the same lsp5keys : arrayLength 2, index = 1, tokenB address in UP1', async () => {
@@ -2114,7 +2122,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
it('should register lsp5keys: arrayLength 2, index 1, tokenB address in UP2', async () => {
@@ -2123,15 +2131,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
});
describe('When transferring tokenId 2 (not all balance) of token B from UP1 to UP2', () => {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
TOKEN_ID.TWO,
false,
'0x',
@@ -2139,7 +2147,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenB.getAddress(), abi));
});
it('should keep the same lsp5keys : arrayLength 2, index = 1, tokenB address in UP1', async () => {
@@ -2148,7 +2156,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
it('should keep the same lsp5keys : arrayLength 2, index = 1, tokenB address in UP2', async () => {
@@ -2157,15 +2165,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
});
describe('When transferring tokenId 3 (remaining balance) of token B from UP1 to UP2', () => {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
TOKEN_ID.THREE,
false,
'0x',
@@ -2173,13 +2181,14 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenB.getAddress(), abi));
});
it('should update lsp5keys (no pop and swap as TokenB has the last index): arrayLength 1, no map, no tokenB address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000001',
@@ -2196,15 +2205,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
});
describe('When transferring tokenId 1 (all balance) of token C from UP1 to UP2', () => {
before(async () => {
const abi = lsp8TokenC.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -2212,13 +2221,14 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp8TokenC.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp8TokenC.getAddress(), abi));
});
it('should update lsp5keys (no pop and swap as TokenC has the last index): arrayLength 0, no map, no tokenB address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index +
'00000000000000000000000000000001',
@@ -2235,15 +2245,15 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(2);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.THREE);
- expect(elementAddress).to.equal(lsp8TokenC.address);
+ expect(elementAddress).to.equal(await lsp8TokenC.getAddress());
});
});
describe('When transferring 1 tokenId (not all balance) of token B from UP2 to UP1', () => {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('transfer', [
- context.universalProfile2.address,
- context.universalProfile1.address,
+ await context.universalProfile2.getAddress(),
+ await context.universalProfile1.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -2251,7 +2261,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager2
.connect(context.accounts.owner2)
- .execute(callPayload(context.universalProfile2, lsp8TokenB.address, abi));
+ .execute(callPayload(context.universalProfile2, await lsp8TokenB.getAddress(), abi));
});
it('should register lsp5keys (UP1 able to re-register keys) : arrayLength 1, index = 0, tokenB address in UP1', async () => {
@@ -2260,7 +2270,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP8IdentifiableDigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp8TokenB.address);
+ expect(elementAddress).to.equal(await lsp8TokenB.getAddress());
});
});
});
@@ -2286,7 +2296,7 @@ export const shouldBehaveLikeLSP1Delegate = (
// check that it does not revert
await expect(
await notTokenContractWithBalanceOfFunction.call(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
),
@@ -2294,8 +2304,8 @@ export const shouldBehaveLikeLSP1Delegate = (
// check that it returns the correct string
const universalReceiverResult =
- await notTokenContractWithBalanceOfFunction.callStatic.call(
- context.universalProfile1.address,
+ await notTokenContractWithBalanceOfFunction.call.staticCall(
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
);
@@ -2305,20 +2315,20 @@ export const shouldBehaveLikeLSP1Delegate = (
const [resultDelegate] = abiCoder.decode(['bytes', 'bytes'], genericExecutorResult);
expect(resultDelegate).to.equal(
- ethers.utils.hexlify(ethers.utils.toUtf8Bytes('LSP1: full balance is not sent')),
+ ethers.hexlify(ethers.toUtf8Bytes('LSP1: full balance is not sent')),
);
// check that the correct string is emitted in the event
await expect(
await notTokenContractWithBalanceOfFunction.call(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
),
)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- notTokenContractWithBalanceOfFunction.address,
+ await notTokenContractWithBalanceOfFunction.getAddress(),
0,
LSP1_TYPE_IDS.LSP8Tokens_SenderNotification,
'0x',
@@ -2337,15 +2347,15 @@ export const shouldBehaveLikeLSP1Delegate = (
// check that it does not revert
await expect(
await notTokenContract.call(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
),
).to.not.be.reverted;
// check that it returns the correct string
- const universalReceiverResult = await notTokenContract.callStatic.call(
- context.universalProfile1.address,
+ const universalReceiverResult = await notTokenContract.call.staticCall(
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
);
@@ -2355,22 +2365,20 @@ export const shouldBehaveLikeLSP1Delegate = (
const [resultDelegate] = abiCoder.decode(['bytes', 'bytes'], genericExecutorResult);
expect(resultDelegate).to.equal(
- ethers.utils.hexlify(
- ethers.utils.toUtf8Bytes('LSP1: `balanceOf(address)` function not found'),
- ),
+ ethers.hexlify(ethers.toUtf8Bytes('LSP1: `balanceOf(address)` function not found')),
);
// check that the correct string is emitted in the event
await expect(
await notTokenContract.call(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
0,
universalReceiverPayload,
),
)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- notTokenContract.address,
+ await notTokenContract.getAddress(),
0,
LSP1_TYPE_IDS.LSP8Tokens_SenderNotification,
'0x',
@@ -2403,13 +2411,13 @@ export const shouldBehaveLikeLSP1Delegate = (
before(async () => {
await lsp9VaultA
.connect(context.accounts.random)
- .transferOwnership(context.universalProfile1.address);
+ .transferOwnership(await context.universalProfile1.getAddress());
const executePayload = context.universalProfile1.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- lsp9VaultA.address,
+ await lsp9VaultA.getAddress(),
0,
- lsp9VaultA.interface.getSighash('acceptOwnership'),
+ lsp9VaultA.interface.getFunction('acceptOwnership').selector,
]);
await context.lsp6KeyManager1.connect(context.accounts.owner1).execute(executePayload);
@@ -2421,7 +2429,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp9VaultA.address);
+ expect(elementAddress).to.equal(await lsp9VaultA.getAddress());
});
});
@@ -2429,13 +2437,13 @@ export const shouldBehaveLikeLSP1Delegate = (
before(async () => {
await lsp9VaultB
.connect(context.accounts.random)
- .transferOwnership(context.universalProfile1.address);
+ .transferOwnership(await context.universalProfile1.getAddress());
const executePayload = context.universalProfile1.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- lsp9VaultB.address,
+ await lsp9VaultB.getAddress(),
0,
- lsp9VaultB.interface.getSighash('acceptOwnership'),
+ lsp9VaultB.interface.getFunction('acceptOwnership').selector,
]);
await context.lsp6KeyManager1.connect(context.accounts.owner1).execute(executePayload);
@@ -2447,7 +2455,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp9VaultB.address);
+ expect(elementAddress).to.equal(await lsp9VaultB.getAddress());
});
});
@@ -2455,13 +2463,13 @@ export const shouldBehaveLikeLSP1Delegate = (
before(async () => {
await lsp9VaultC
.connect(context.accounts.random)
- .transferOwnership(context.universalProfile1.address);
+ .transferOwnership(await context.universalProfile1.getAddress());
const executePayload = context.universalProfile1.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- lsp9VaultC.address,
+ await lsp9VaultC.getAddress(),
0,
- lsp9VaultC.interface.getSighash('acceptOwnership'),
+ lsp9VaultC.interface.getFunction('acceptOwnership').selector,
]);
await context.lsp6KeyManager1.connect(context.accounts.owner1).execute(executePayload);
@@ -2473,7 +2481,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(2);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.THREE);
- expect(elementAddress).to.equal(lsp9VaultC.address);
+ expect(elementAddress).to.equal(await lsp9VaultC.getAddress());
});
});
});
@@ -2482,18 +2490,18 @@ export const shouldBehaveLikeLSP1Delegate = (
describe('When transfering Ownership of VaultA from UP1 to UP2', () => {
before(async () => {
const abi = lsp9VaultA.interface.encodeFunctionData('transferOwnership', [
- context.universalProfile2.address,
+ await context.universalProfile2.getAddress(),
]);
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp9VaultA.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp9VaultA.getAddress(), abi));
const executePayload = context.universalProfile2.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- lsp9VaultA.address,
+ await lsp9VaultA.getAddress(),
0,
- lsp9VaultA.interface.getSighash('acceptOwnership'),
+ lsp9VaultA.interface.getFunction('acceptOwnership').selector,
]);
await context.lsp6KeyManager2.connect(context.accounts.owner2).execute(executePayload);
@@ -2505,7 +2513,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp9VaultC.address);
+ expect(elementAddress).to.equal(await lsp9VaultC.getAddress());
});
it('should register lsp10key: arrayLength 1, index 0, VaultA address in UP2', async () => {
@@ -2514,25 +2522,25 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp9VaultA.address);
+ expect(elementAddress).to.equal(await lsp9VaultA.getAddress());
});
});
describe('When transfering Ownership of VaultB from UP1 to UP2', () => {
before(async () => {
const abi = lsp9VaultB.interface.encodeFunctionData('transferOwnership', [
- context.universalProfile2.address,
+ await context.universalProfile2.getAddress(),
]);
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp9VaultB.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp9VaultB.getAddress(), abi));
const executePayload = context.universalProfile2.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- lsp9VaultB.address,
+ await lsp9VaultB.getAddress(),
0,
- lsp9VaultB.interface.getSighash('acceptOwnership'),
+ lsp9VaultB.interface.getFunction('acceptOwnership').selector,
]);
await context.lsp6KeyManager2.connect(context.accounts.owner2).execute(executePayload);
@@ -2541,7 +2549,7 @@ export const shouldBehaveLikeLSP1Delegate = (
it('should update lsp10keys (no pop and swap as VaultB has the last index): arrayLength 1, no map, no VaultB address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP10.LSP10VaultsMap + lsp9VaultB.address.substr(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await lsp9VaultB.getAddress()).substring(2),
ERC725YDataKeys.LSP10['LSP10Vaults[]'].length,
ERC725YDataKeys.LSP10['LSP10Vaults[]'].index + '00000000000000000000000000000001',
]);
@@ -2557,25 +2565,25 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp9VaultB.address);
+ expect(elementAddress).to.equal(await lsp9VaultB.getAddress());
});
});
describe('When transfering Ownership of VaultC from UP1 to UP2', () => {
before(async () => {
const abi = lsp9VaultC.interface.encodeFunctionData('transferOwnership', [
- context.universalProfile2.address,
+ await context.universalProfile2.getAddress(),
]);
await context.lsp6KeyManager1
.connect(context.accounts.owner1)
- .execute(callPayload(context.universalProfile1, lsp9VaultC.address, abi));
+ .execute(callPayload(context.universalProfile1, await lsp9VaultC.getAddress(), abi));
const executePayload = context.universalProfile2.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- lsp9VaultC.address,
+ await lsp9VaultC.getAddress(),
0,
- lsp9VaultC.interface.getSighash('acceptOwnership'),
+ lsp9VaultC.interface.getFunction('acceptOwnership').selector,
]);
await context.lsp6KeyManager2.connect(context.accounts.owner2).execute(executePayload);
@@ -2584,7 +2592,7 @@ export const shouldBehaveLikeLSP1Delegate = (
it('should remove all lsp10keys : arrayLength 0, no map, no VaultC address in UP1', async () => {
const [mapValue, arrayLength, elementAddress] =
await context.universalProfile1.getDataBatch([
- ERC725YDataKeys.LSP10.LSP10VaultsMap + lsp9VaultB.address.substr(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await lsp9VaultB.getAddress()).substring(2),
ERC725YDataKeys.LSP10['LSP10Vaults[]'].length,
ERC725YDataKeys.LSP10['LSP10Vaults[]'].index + '00000000000000000000000000000000',
]);
@@ -2600,25 +2608,25 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(2);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.THREE);
- expect(elementAddress).to.equal(lsp9VaultC.address);
+ expect(elementAddress).to.equal(await lsp9VaultC.getAddress());
});
});
describe('When transferring Ownership of VaultB from UP2 to UP1', () => {
before(async () => {
const abi = lsp9VaultB.interface.encodeFunctionData('transferOwnership', [
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
]);
await context.lsp6KeyManager2
.connect(context.accounts.owner2)
- .execute(callPayload(context.universalProfile2, lsp9VaultB.address, abi));
+ .execute(callPayload(context.universalProfile2, await lsp9VaultB.getAddress(), abi));
const executePayload = context.universalProfile1.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- lsp9VaultB.address,
+ await lsp9VaultB.getAddress(),
0,
- lsp9VaultB.interface.getSighash('acceptOwnership'),
+ lsp9VaultB.interface.getFunction('acceptOwnership').selector,
]);
await context.lsp6KeyManager1.connect(context.accounts.owner1).execute(executePayload);
@@ -2629,7 +2637,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp9VaultB.address);
+ expect(elementAddress).to.equal(await lsp9VaultB.getAddress());
});
});
});
@@ -2643,7 +2651,7 @@ export const shouldBehaveLikeLSP1Delegate = (
await context.lsp6KeyManager2
.connect(context.accounts.owner2)
- .execute(callPayload(context.universalProfile2, lsp9VaultA.address, abi));
+ .execute(callPayload(context.universalProfile2, await lsp9VaultA.getAddress(), abi));
await lsp9VaultA.connect(context.accounts.any).acceptOwnership();
});
@@ -2654,13 +2662,13 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(0);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.ONE);
- expect(elementAddress).to.equal(lsp9VaultC.address);
+ expect(elementAddress).to.equal(await lsp9VaultC.getAddress());
});
});
});
describe('When renouncing ownership of a vault from UP2', () => {
- let tx: Transaction;
+ let tx: ContractTransaction;
let someVault: LSP9Vault;
let dataKeys: string[];
let dataValues: string[];
@@ -2675,23 +2683,22 @@ export const shouldBehaveLikeLSP1Delegate = (
}
someVault = await new LSP9Vault__factory(context.accounts.random).deploy(
- context.universalProfile2.address,
+ await context.universalProfile2.getAddress(),
);
dataKeys = [
- ERC725YDataKeys.LSP10.LSP10VaultsMap + someVault.address.substring(2),
+ ERC725YDataKeys.LSP10.LSP10VaultsMap + (await someVault.getAddress()).substring(2),
ERC725YDataKeys.LSP10['LSP10Vaults[]'].length,
ERC725YDataKeys.LSP10['LSP10Vaults[]'].index + LSP10ArrayLength.substring(2),
];
dataValues = [
INTERFACE_IDS.LSP9Vault + LSP10ArrayLength.substring(2),
- `0x${ethers.BigNumber.from(LSP10ArrayLength)
- .add(1)
- .toHexString()
+ `0x${ethers
+ .toBeHex(ethers.toBigInt(LSP10ArrayLength) + BigInt(1))
.substring(2)
.padStart(32, '00')}`,
- someVault.address,
+ await someVault.getAddress(),
];
expect(await context.universalProfile2.getDataBatch(dataKeys)).to.deep.equal(dataValues);
@@ -2700,19 +2707,29 @@ export const shouldBehaveLikeLSP1Delegate = (
someVault.interface.encodeFunctionData('renounceOwnership');
// Skip 1000 blocks
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(1000)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(1000)]);
// Call renounceOwnership for the first time
await context.universalProfile2
.connect(context.accounts.owner2)
- .execute(OPERATION_TYPES.CALL, someVault.address, 0, renounceOwnershipCalldata);
+ .execute(
+ OPERATION_TYPES.CALL,
+ await someVault.getAddress(),
+ 0,
+ renounceOwnershipCalldata,
+ );
// Skip 199 block to reach the time where renouncing ownership can happen
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(199)]);
+ await network.provider.send('hardhat_mine', [ethers.toBeHex(199)]);
tx = await context.universalProfile2
.connect(context.accounts.owner2)
- .execute(OPERATION_TYPES.CALL, someVault.address, 0, renounceOwnershipCalldata);
+ .execute(
+ OPERATION_TYPES.CALL,
+ await someVault.getAddress(),
+ 0,
+ renounceOwnershipCalldata,
+ );
});
it('Should emit `UnviersalReceiver` event', async () => {
@@ -2720,20 +2737,19 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(tx)
.to.emit(context.universalProfile2, 'UniversalReceiver')
.withArgs(
- someVault.address,
+ await someVault.getAddress(),
0,
LSP1_TYPE_IDS.LSP9OwnershipTransferred_SenderNotification,
'0x',
- ethers.utils.defaultAbiCoder.encode(['bytes', 'bytes'], ['0x', '0x']),
+ ethers.AbiCoder.defaultAbiCoder().encode(['bytes', 'bytes'], ['0x', '0x']),
);
});
it('should remove the LSP10 data keys assigned for `someVault`', async () => {
expect(await context.universalProfile2.getDataBatch(dataKeys)).to.deep.equal([
'0x',
- `0x${ethers.BigNumber.from(dataValues[1])
- .sub(1)
- .toHexString()
+ `0x${ethers
+ .toBeHex(ethers.toBigInt(dataValues[1]) - BigInt(1))
.substring(2)
.padStart(32, '00')}`,
'0x',
@@ -2746,7 +2762,7 @@ export const shouldBehaveLikeLSP1Delegate = (
before(async () => {
lsp9VaultD = await new LSP9Vault__factory(context.accounts.random).deploy(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
);
});
@@ -2757,7 +2773,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP9Vault);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp9VaultD.address);
+ expect(elementAddress).to.equal(await lsp9VaultD.getAddress());
});
});
@@ -2768,7 +2784,7 @@ export const shouldBehaveLikeLSP1Delegate = (
});
it('should revert if `LSP10Vaults[]` vault value is the max `uint128`', async () => {
- const maxUint128 = ethers.BigNumber.from(2).pow(128).sub(1).toHexString();
+ const maxUint128 = ethers.toBeHex(ethers.toBigInt('0xffffffffffffffffffffffffffffffff'));
const key = ERC725YDataKeys.LSP10['LSP10Vaults[]'].length;
const value = maxUint128;
@@ -2785,17 +2801,17 @@ export const shouldBehaveLikeLSP1Delegate = (
// this should revert because the UP has already the max number of vaults allowed
const tx = await new LSP9Vault__factory(context.accounts.random).deploy(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
);
- await expect(tx.deployTransaction)
+ await expect(tx.deploymentTransaction())
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- tx.address,
+ await tx.getAddress(),
0,
LSP1_TYPE_IDS.LSP9OwnershipTransferred_RecipientNotification,
'0x',
- ethers.utils.defaultAbiCoder.encode(
+ ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP10: Error generating data key/value pairs', '0x'],
),
@@ -2818,7 +2834,7 @@ export const shouldBehaveLikeLSP1Delegate = (
profileOwner.address,
);
const deployedKeyManager = await new LSP6KeyManager__factory(profileOwner).deploy(
- deployedUniversalProfile.address,
+ await deployedUniversalProfile.getAddress(),
);
testContext = {
@@ -2831,14 +2847,16 @@ export const shouldBehaveLikeLSP1Delegate = (
await setupKeyManager(testContext, [], []);
// 2. deploy a Vault owned by the UP
- vault = await new LSP9Vault__factory(profileOwner).deploy(deployedUniversalProfile.address);
+ vault = await new LSP9Vault__factory(profileOwner).deploy(
+ await deployedUniversalProfile.getAddress(),
+ );
// 3. deploy a URD and set its address on the UP storage under the LSP1Delegate data key
lsp1Delegate = await new LSP1UniversalReceiverDelegateUP__factory(profileOwner).deploy();
const setLSP1DelegatePayload = testContext.universalProfile.interface.encodeFunctionData(
'setData',
- [ERC725YDataKeys.LSP1.LSP1UniversalReceiverDelegate, lsp1Delegate.address],
+ [ERC725YDataKeys.LSP1.LSP1UniversalReceiverDelegate, await lsp1Delegate.getAddress()],
);
await testContext.keyManager
@@ -2860,7 +2878,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(lsp10VaultArrayIndexValue).to.equal('0x');
const lsp10VaultMapValue = await testContext.universalProfile['getData(bytes32)'](
- ERC725YDataKeys.LSP10['LSP10VaultsMap'] + vault.address.substring(2),
+ ERC725YDataKeys.LSP10['LSP10VaultsMap'] + (await vault.getAddress()).substring(2),
);
expect(lsp10VaultMapValue).to.equal('0x');
@@ -2871,7 +2889,7 @@ export const shouldBehaveLikeLSP1Delegate = (
ERC725YDataKeys.LSP1.LSP1UniversalReceiverDelegate,
);
// checksum the address
- expect(ethers.utils.getAddress(result)).to.equal(lsp1Delegate.address);
+ expect(ethers.getAddress(result)).to.equal(await lsp1Delegate.getAddress());
});
describe('when transfering + accepting ownership of the Vault', () => {
@@ -2885,7 +2903,7 @@ export const shouldBehaveLikeLSP1Delegate = (
const executePayload = testContext.universalProfile.interface.encodeFunctionData(
'execute',
- [OPERATION_TYPES.CALL, vault.address, 0, transferOwnershipPayload],
+ [OPERATION_TYPES.CALL, await vault.getAddress(), 0, transferOwnershipPayload],
);
await testContext.keyManager.connect(testContext.mainController).execute(executePayload);
@@ -2896,9 +2914,7 @@ export const shouldBehaveLikeLSP1Delegate = (
const expectedReturnedValues = abiCoder.encode(
['bytes', 'bytes'],
[
- ethers.utils.hexlify(
- ethers.utils.toUtf8Bytes('LSP10: Error generating data key/value pairs'),
- ),
+ ethers.hexlify(ethers.toUtf8Bytes('LSP10: Error generating data key/value pairs')),
'0x',
],
);
@@ -2909,12 +2925,12 @@ export const shouldBehaveLikeLSP1Delegate = (
await expect(acceptOwnershipTx)
.to.emit(testContext.universalProfile, 'UniversalReceiver')
.withArgs(
- vault.address,
+ await vault.getAddress(),
0,
LSP1_TYPE_IDS.LSP9OwnershipTransferred_SenderNotification,
abiCoder.encode(
['address', 'address'],
- [testContext.universalProfile.address, newVaultOwner.address],
+ [await testContext.universalProfile.getAddress(), newVaultOwner.address],
),
expectedReturnedValues,
);
@@ -2930,7 +2946,7 @@ export const shouldBehaveLikeLSP1Delegate = (
expect(lsp10VaultArrayLengthValue).to.equal('0x');
const lsp10VaultMapValue = await testContext.universalProfile['getData(bytes32)'](
- ERC725YDataKeys.LSP10['LSP10VaultsMap'] + vault.address.substring(2),
+ ERC725YDataKeys.LSP10['LSP10VaultsMap'] + (await vault.getAddress()).substring(2),
);
expect(lsp10VaultMapValue).to.equal('0x');
@@ -2953,11 +2969,11 @@ export const shouldBehaveLikeLSP1Delegate = (
const lsp10DataKeys = [
ERC725YDataKeys.LSP10['LSP10Vaults[]'].length,
ERC725YDataKeys.LSP10['LSP10Vaults[]'].index + '00'.repeat(16),
- ERC725YDataKeys.LSP10['LSP10VaultsMap'] + vault.address.substring(2),
+ ERC725YDataKeys.LSP10['LSP10VaultsMap'] + (await vault.getAddress()).substring(2),
];
const lsp10DataValues = [
bytes16Value1,
- vault.address,
+ await vault.getAddress(),
abiCoder.encode(['bytes4', 'uint64'], [INTERFACE_IDS.LSP9Vault, 0]),
];
@@ -2985,10 +3001,10 @@ export const shouldBehaveLikeLSP1Delegate = (
);
// checksum the address
- expect(ethers.utils.getAddress(lsp10VaultArrayIndexValue)).to.equal(vault.address);
+ expect(ethers.getAddress(lsp10VaultArrayIndexValue)).to.equal(await vault.getAddress());
const lsp10VaultMapValue = await context.universalProfile1['getData(bytes32)'](
- ERC725YDataKeys.LSP10['LSP10VaultsMap'] + vault.address.substring(2),
+ ERC725YDataKeys.LSP10['LSP10VaultsMap'] + (await vault.getAddress()).substring(2),
);
expect(lsp10VaultMapValue).to.equal(
@@ -2998,17 +3014,19 @@ export const shouldBehaveLikeLSP1Delegate = (
it("should not revert and return the string 'LSP10: Error generating data key/value pairs'", async () => {
// 1. transfer ownership of the vault to the UP
- await vault.connect(vaultOwner).transferOwnership(context.universalProfile1.address);
+ await vault
+ .connect(vaultOwner)
+ .transferOwnership(await context.universalProfile1.getAddress());
// check that the UP is the pending owner of the vault
- expect(await vault.pendingOwner()).to.equal(context.universalProfile1.address);
+ expect(await vault.pendingOwner()).to.equal(await context.universalProfile1.getAddress());
// 2. UP accepts ownership of the vault
- const acceptOwnershipPayload = vault.interface.getSighash('acceptOwnership');
+ const acceptOwnershipPayload = vault.interface.getFunction('acceptOwnership').selector;
const executePayload = context.universalProfile1.interface.encodeFunctionData('execute', [
OPERATION_TYPES.CALL,
- vault.address,
+ await vault.getAddress(),
0,
acceptOwnershipPayload,
]);
@@ -3018,28 +3036,23 @@ export const shouldBehaveLikeLSP1Delegate = (
.execute(executePayload);
// check that the UP is now the owner of the vault
- expect(await vault.owner()).to.equal(context.universalProfile1.address);
+ expect(await vault.owner()).to.equal(await context.universalProfile1.getAddress());
const expectedReturnedValues = abiCoder.encode(
['bytes', 'bytes'],
- [
- ethers.utils.hexlify(
- ethers.utils.toUtf8Bytes('LSP10: Error generating data key/value pairs'),
- ),
- '0x',
- ],
+ [ethers.hexlify(ethers.toUtf8Bytes('LSP10: Error generating data key/value pairs')), '0x'],
);
// check that the right return string is emitted in the UniversalReceiver event
await expect(acceptOwnershipTx)
.to.emit(context.universalProfile1, 'UniversalReceiver')
.withArgs(
- vault.address,
+ await vault.getAddress(),
0,
LSP1_TYPE_IDS.LSP9OwnershipTransferred_RecipientNotification,
abiCoder.encode(
['address', 'address'],
- [vaultOwner.address, context.universalProfile1.address],
+ [vaultOwner.address, await context.universalProfile1.getAddress()],
),
expectedReturnedValues,
);
@@ -3057,10 +3070,10 @@ export const shouldBehaveLikeLSP1Delegate = (
);
// checksum the address
- expect(ethers.utils.getAddress(lsp10VaultArrayIndexValue)).to.equal(vault.address);
+ expect(ethers.getAddress(lsp10VaultArrayIndexValue)).to.equal(await vault.getAddress());
const lsp10VaultMapValue = await context.universalProfile1['getData(bytes32)'](
- ERC725YDataKeys.LSP10['LSP10VaultsMap'] + vault.address.substring(2),
+ ERC725YDataKeys.LSP10['LSP10VaultsMap'] + (await vault.getAddress()).substring(2),
);
expect(lsp10VaultMapValue).to.equal(
@@ -3092,17 +3105,17 @@ export const shouldBehaveLikeLSP1Delegate = (
const LSP7 = await new LSP7MintWhenDeployed__factory(context.accounts.owner1).deploy(
'MyToken',
'MTK',
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
LSP4_TOKEN_TYPES.TOKEN,
);
- expect(await LSP7.balanceOf(context.universalProfile1.address)).to.equal(1000);
- expect(await LSP7.balanceOf(context.universalProfile2.address)).to.equal(0);
+ expect(await LSP7.balanceOf(await context.universalProfile1.getAddress())).to.equal(1000);
+ expect(await LSP7.balanceOf(await context.universalProfile2.getAddress())).to.equal(0);
// Encode LSP7 tokens tarnsfer (UP1 to UP2)
const LSP7_TransferCalldata = LSP7.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
1,
false,
'0x',
@@ -3111,10 +3124,10 @@ export const shouldBehaveLikeLSP1Delegate = (
// Transfer LSP7 tokens
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, LSP7.address, 0, LSP7_TransferCalldata);
+ .execute(OPERATION_TYPES.CALL, LSP7.getAddress(), 0, LSP7_TransferCalldata);
- expect(await LSP7.balanceOf(context.universalProfile1.address)).to.equal(999);
- expect(await LSP7.balanceOf(context.universalProfile2.address)).to.equal(1);
+ expect(await LSP7.balanceOf(await context.universalProfile1.getAddress())).to.equal(999);
+ expect(await LSP7.balanceOf(await context.universalProfile2.getAddress())).to.equal(1);
});
});
@@ -3124,21 +3137,26 @@ export const shouldBehaveLikeLSP1Delegate = (
const LSP8 = await new LSP8Tester__factory(context.accounts.owner1).deploy(
'MyToken',
'MTK',
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
LSP4_TOKEN_TYPES.NFT,
LSP8_TOKEN_ID_FORMAT.NUMBER,
);
// Mint token for UP1
- await LSP8.mint(context.universalProfile1.address, '0x' + '0'.repeat(64), true, '0x');
+ await LSP8.mint(
+ await context.universalProfile1.getAddress(),
+ '0x' + '0'.repeat(64),
+ true,
+ '0x',
+ );
expect(await LSP8.tokenOwnerOf('0x' + '0'.repeat(64))).to.equal(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
);
// Encode LSP8 token tarnsfer (UP1 to UP2)
const LSP8_TransferCalldata = LSP8.interface.encodeFunctionData('transfer', [
- context.universalProfile1.address,
- context.universalProfile2.address,
+ await context.universalProfile1.getAddress(),
+ await context.universalProfile2.getAddress(),
'0x' + '0'.repeat(64),
false,
'0x',
@@ -3147,10 +3165,10 @@ export const shouldBehaveLikeLSP1Delegate = (
// Transfer LSP8 token
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, LSP8.address, 0, LSP8_TransferCalldata);
+ .execute(OPERATION_TYPES.CALL, await LSP8.getAddress(), 0, LSP8_TransferCalldata);
expect(await LSP8.tokenOwnerOf('0x' + '0'.repeat(64))).to.equal(
- context.universalProfile2.address,
+ await context.universalProfile2.getAddress(),
);
});
});
@@ -3159,29 +3177,34 @@ export const shouldBehaveLikeLSP1Delegate = (
it('should not revert', async () => {
// Deploy LSP9 (UP1 ownwer)
const LSP9 = await new LSP9Vault__factory(context.accounts.owner1).deploy(
- context.universalProfile1.address,
+ await context.universalProfile1.getAddress(),
);
- expect(await LSP9.owner()).to.equal(context.universalProfile1.address);
+ expect(await LSP9.owner()).to.equal(await context.universalProfile1.getAddress());
// Encode LSP9 transfer & accept ownership (UP1 to UP2)
const LSP9_TransferOwnerhsipCalldata = LSP9.interface.encodeFunctionData(
'transferOwnership',
- [context.universalProfile2.address],
+ [await context.universalProfile2.getAddress()],
);
const LSP9_AcceptOwnerhsipCalldata = LSP9.interface.encodeFunctionData('acceptOwnership');
// Transfer Ownership of LSP9
await context.universalProfile1
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, LSP9.address, 0, LSP9_TransferOwnerhsipCalldata);
+ .execute(
+ OPERATION_TYPES.CALL,
+ await LSP9.getAddress(),
+ 0,
+ LSP9_TransferOwnerhsipCalldata,
+ );
// Accept Ownership of LSP9
await context.universalProfile2
.connect(context.accounts.owner2)
- .execute(OPERATION_TYPES.CALL, LSP9.address, 0, LSP9_AcceptOwnerhsipCalldata);
+ .execute(OPERATION_TYPES.CALL, await LSP9.getAddress(), 0, LSP9_AcceptOwnerhsipCalldata);
- expect(await LSP9.owner()).to.equal(context.universalProfile2.address);
+ expect(await LSP9.owner()).to.equal(await context.universalProfile2.getAddress());
});
});
});
diff --git a/tests/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP.test.ts b/tests/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP.test.ts
index b0eab3e6a..5ae070d8f 100644
--- a/tests/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP.test.ts
+++ b/tests/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP.test.ts
@@ -29,6 +29,7 @@ describe('LSP1UniversalReceiverDelegateUP', () => {
const [UP2, KM2] = await setupProfileWithKeyManagerWithURD(accounts.owner2);
const lsp1universalReceiverDelegateUP = LSP1_URD_UP as LSP1UniversalReceiverDelegateUP;
+
const universalProfile1 = UP1 as UniversalProfile;
const universalProfile2 = UP2 as UniversalProfile;
const lsp6KeyManager1 = KM1 as LSP6KeyManager;
diff --git a/tests/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault.behaviour.ts b/tests/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault.behaviour.ts
index 41fdf5d6c..63183f41c 100644
--- a/tests/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault.behaviour.ts
+++ b/tests/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault.behaviour.ts
@@ -1,6 +1,6 @@
import { ethers } from 'hardhat';
import { expect } from 'chai';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
// types
import {
@@ -25,7 +25,7 @@ import { LSP4_TOKEN_TYPES } from '@lukso/lsp4-contracts';
import { LSP8_TOKEN_ID_FORMAT } from '@lukso/lsp8-contracts';
import { callPayload, getLSP5MapAndArrayKeysValue } from '../utils/fixtures';
-import { BigNumber, BytesLike, Transaction } from 'ethers';
+import { BytesLike, ContractTransaction } from 'ethers';
export type LSP1TestAccounts = {
owner1: SignerWithAddress;
@@ -126,9 +126,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise Promise Promise Promise Promise Promise Promise {
@@ -262,15 +267,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenA.interface.encodeFunctionData('mint', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'10',
false,
'0x',
@@ -280,9 +285,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -291,14 +296,14 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('mint', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'10',
false,
'0x',
@@ -308,9 +313,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -319,14 +324,14 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('mint', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'10',
false,
'0x',
@@ -336,25 +341,27 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
const [indexInMap, interfaceId, arrayLength, elementAddress] =
await getLSP5MapAndArrayKeysValue(context.lsp9Vault1, lsp7TokenB);
+
expect(indexInMap).to.equal(1);
expect(interfaceId).to.equal(INTERFACE_IDS.LSP7DigitalAsset);
expect(arrayLength).to.equal(ARRAY_LENGTH.TWO);
- expect(elementAddress).to.equal(lsp7TokenB.address);
+ expect(elementAddress).to.equal(await lsp7TokenB.getAddress());
});
});
describe('when minting 10 tokenC to lsp9Vault1', () => {
before(async () => {
const abi = lsp7TokenC.interface.encodeFunctionData('mint', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'10',
false,
'0x',
@@ -364,9 +371,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -375,7 +382,7 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
before(async () => {
const abi = lsp7TokenC.interface.encodeFunctionData('burn', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'10',
'0x',
]);
@@ -393,14 +400,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenC.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenC.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000002',
]);
@@ -414,7 +422,7 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenA.interface.encodeFunctionData('burn', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'10',
'0x',
]);
@@ -423,9 +431,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenA.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenA.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000001',
]);
@@ -454,7 +463,7 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('burn', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'10',
'0x',
]);
@@ -463,9 +472,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -474,14 +483,14 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('burn', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'10',
'0x',
]);
@@ -490,14 +499,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000000',
]);
@@ -513,15 +523,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
await lsp7TokenA
.connect(context.accounts.random)
- .mint(context.lsp9Vault1.address, '10', false, '0x');
+ .mint(await context.lsp9Vault1.getAddress(), '10', false, '0x');
await lsp7TokenB
.connect(context.accounts.random)
- .mint(context.lsp9Vault1.address, '10', false, '0x');
+ .mint(await context.lsp9Vault1.getAddress(), '10', false, '0x');
await lsp7TokenC
.connect(context.accounts.random)
- .mint(context.lsp9Vault1.address, '10', false, '0x');
+ .mint(await context.lsp9Vault1.getAddress(), '10', false, '0x');
});
it('should register lsp5keys: arrayLength 3, index [1,2,3], [tokenA, tokenB, tokenC] addresses in Vault1 ', async () => {
@@ -541,16 +551,16 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenA.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
'10',
false,
'0x',
@@ -560,9 +570,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenA.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenA.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000002',
]);
@@ -593,15 +604,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
'5',
false,
'0x',
@@ -611,9 +622,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
@@ -632,15 +643,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
'4',
false,
'0x',
@@ -650,9 +661,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
@@ -671,15 +682,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
'1',
false,
'0x',
@@ -689,15 +700,16 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000001',
]);
@@ -713,15 +725,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenC.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
'10',
false,
'0x',
@@ -731,15 +743,16 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp7TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp7TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000001',
]);
@@ -755,15 +768,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp7TokenB.interface.encodeFunctionData('transfer', [
- context.lsp9Vault2.address,
- context.lsp9Vault1.address,
+ await context.lsp9Vault2.getAddress(),
+ await context.lsp9Vault1.getAddress(),
'1',
false,
'0x',
@@ -773,9 +786,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise Promise {
before(async () => {
const abi1 = lsp7TokenB.interface.encodeFunctionData('burn', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
'1',
'0x',
]);
@@ -802,13 +815,13 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise Promise Promise {
@@ -887,39 +900,45 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
- let tokenTransferTx: Transaction;
- let balance: BigNumber;
+ let tokenTransferTx: ContractTransaction;
+ let balance: bigint;
before(async () => {
await token
.connect(context.accounts.owner1)
- .mint(context.lsp9Vault1.address, 100, true, '0x');
+ .mint(await context.lsp9Vault1.getAddress(), 100, true, '0x');
const vaultSetDataCalldata = context.lsp9Vault1.interface.encodeFunctionData('setData', [
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + token.address.substring(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + (await token.getAddress()).substring(2),
'0xcafecafecafecafe',
]);
await context.universalProfile
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, context.lsp9Vault1.address, 0, vaultSetDataCalldata);
+ .execute(
+ OPERATION_TYPES.CALL,
+ await context.lsp9Vault1.getAddress(),
+ 0,
+ vaultSetDataCalldata,
+ );
expect(
await context.lsp9Vault1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xcafecafecafecafe',
]);
- balance = await token.balanceOf(context.lsp9Vault1.address);
+ balance = await token.balanceOf(await context.lsp9Vault1.getAddress());
const tokenTransferCalldata = token.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
context.accounts.owner1.address,
balance,
true,
@@ -928,12 +947,17 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -941,20 +965,20 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
- const tokensSentBytes32Value = ethers.utils.hexZeroPad(balance.toHexString(), 32);
+ const tokensSentBytes32Value = ethers.zeroPadValue(ethers.toBeHex(balance), 32);
const tokenTransferData = abiCoder.encode(
['address', 'address', 'address', 'uint256', 'bytes'],
[
- context.lsp9Vault1.address,
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault1.getAddress(),
context.accounts.owner1.address,
tokensSentBytes32Value,
'0x',
],
);
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP5: Error generating data key/value pairs', '0x'],
);
@@ -962,7 +986,7 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
- let tokenTransferTx: Transaction;
- let balance: BigNumber;
+ let tokenTransferTx: ContractTransaction;
+ let balance: bigint;
before(async () => {
await token
.connect(context.accounts.owner1)
- .mint(context.lsp9Vault1.address, 100, true, '0x');
+ .mint(await context.lsp9Vault1.getAddress(), 100, true, '0x');
const vaultSetDataCalldata = context.lsp9Vault1.interface.encodeFunctionData('setData', [
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + token.address.substring(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + (await token.getAddress()).substring(2),
'0xb3c4928f00000000000000000000000000000000cafecafe',
]);
await context.universalProfile
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, context.lsp9Vault1.address, 0, vaultSetDataCalldata);
+ .execute(
+ OPERATION_TYPES.CALL,
+ await context.lsp9Vault1.getAddress(),
+ 0,
+ vaultSetDataCalldata,
+ );
expect(
await context.lsp9Vault1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xb3c4928f00000000000000000000000000000000cafecafe',
]);
- balance = await token.balanceOf(context.lsp9Vault1.address);
+ balance = await token.balanceOf(await context.lsp9Vault1.getAddress());
const tokenTransferCalldata = token.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
context.accounts.owner1.address,
balance,
true,
@@ -1019,12 +1048,17 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -1032,20 +1066,20 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
- const tokensSentBytes32Value = ethers.utils.hexZeroPad(balance.toHexString(), 32);
+ const tokensSentBytes32Value = ethers.zeroPadValue(ethers.toBeHex(balance), 32);
const tokenTransferData = abiCoder.encode(
['address', 'address', 'address', 'uint256', 'bytes'],
[
- context.lsp9Vault1.address,
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault1.getAddress(),
context.accounts.owner1.address,
tokensSentBytes32Value,
'0x',
],
);
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP5: Error generating data key/value pairs', '0x'],
);
@@ -1053,7 +1087,7 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
- let tokenTransferTx: Transaction;
- let balance: BigNumber;
+ let tokenTransferTx: ContractTransaction;
+ let balance: bigint;
before(async () => {
await token
.connect(context.accounts.owner1)
- .mint(context.lsp9Vault1.address, 100, true, '0x');
+ .mint(await context.lsp9Vault1.getAddress(), 100, true, '0x');
const vaultSetDataCalldata = context.lsp9Vault1.interface.encodeFunctionData('setData', [
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + token.address.substring(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + (await token.getAddress()).substring(2),
'0xcafecafecafecafecafecafecafecafecafecafe',
]);
await context.universalProfile
.connect(context.accounts.owner1)
- .execute(OPERATION_TYPES.CALL, context.lsp9Vault1.address, 0, vaultSetDataCalldata);
+ .execute(
+ OPERATION_TYPES.CALL,
+ await context.lsp9Vault1.getAddress(),
+ 0,
+ vaultSetDataCalldata,
+ );
expect(
await context.lsp9Vault1.getDataBatch([arrayKey, arrayIndexKey, assetMapKey]),
).to.deep.equal([
'0x' + '00'.repeat(15) + '01',
- token.address.toLowerCase(),
+ (await token.getAddress()).toLowerCase(),
'0xcafecafecafecafecafecafecafecafecafecafe',
]);
- balance = await token.balanceOf(context.lsp9Vault1.address);
+ balance = await token.balanceOf(await context.lsp9Vault1.getAddress());
const tokenTransferCalldata = token.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
context.accounts.owner1.address,
balance,
true,
@@ -1110,12 +1149,17 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -1123,20 +1167,20 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
- const tokensSentBytes32Value = ethers.utils.hexZeroPad(balance.toHexString(), 32);
+ const tokensSentBytes32Value = ethers.zeroPadValue(ethers.toBeHex(balance), 32);
const tokenTransferData = abiCoder.encode(
['address', 'address', 'address', 'uint256', 'bytes'],
[
- context.lsp9Vault1.address,
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault1.getAddress(),
context.accounts.owner1.address,
tokensSentBytes32Value,
'0x',
],
);
- const lsp1ReturnedData = ethers.utils.defaultAbiCoder.encode(
+ const lsp1ReturnedData = ethers.AbiCoder.defaultAbiCoder().encode(
['string', 'bytes'],
['LSP5: Error generating data key/value pairs', '0x'],
);
@@ -1144,7 +1188,7 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise Promise {
before(async () => {
const abi = lsp8TokenA.interface.encodeFunctionData('mint', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1206,9 +1250,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -1217,14 +1261,14 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('mint', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1234,9 +1278,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -1245,14 +1289,14 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('mint', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
TOKEN_ID.TWO,
false,
'0x',
@@ -1262,9 +1306,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -1273,14 +1317,14 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenC.interface.encodeFunctionData('mint', [
- context.lsp9Vault1.address,
+ await context.lsp9Vault1.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1290,9 +1334,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -1301,7 +1345,7 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenC.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenC.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000002',
]);
@@ -1341,9 +1386,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenA.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenA.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000001',
]);
@@ -1377,9 +1423,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -1388,7 +1434,7 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000000',
]);
@@ -1424,23 +1471,23 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
@@ -1460,16 +1507,16 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenA.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1479,9 +1526,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenA.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenA.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000002',
]);
@@ -1512,15 +1560,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1530,9 +1578,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
@@ -1551,15 +1599,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
TOKEN_ID.TWO,
false,
'0x',
@@ -1569,9 +1617,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise {
@@ -1590,15 +1638,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
TOKEN_ID.THREE,
false,
'0x',
@@ -1608,15 +1656,16 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000001',
]);
@@ -1632,15 +1681,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenC.interface.encodeFunctionData('transfer', [
- context.lsp9Vault1.address,
- context.lsp9Vault2.address,
+ await context.lsp9Vault1.getAddress(),
+ await context.lsp9Vault2.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1650,15 +1699,16 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
const [mapValue, arrayLength, elementAddress] = await context.lsp9Vault1.getDataBatch([
- ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap + lsp8TokenB.address.substr(2),
+ ERC725YDataKeys.LSP5.LSP5ReceivedAssetsMap +
+ (await lsp8TokenB.getAddress()).substring(2),
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].length,
ERC725YDataKeys.LSP5['LSP5ReceivedAssets[]'].index + '00000000000000000000000000000001',
]);
@@ -1674,15 +1724,15 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise {
before(async () => {
const abi = lsp8TokenB.interface.encodeFunctionData('transfer', [
- context.lsp9Vault2.address,
- context.lsp9Vault1.address,
+ await context.lsp9Vault2.getAddress(),
+ await context.lsp9Vault1.getAddress(),
TOKEN_ID.ONE,
false,
'0x',
@@ -1692,9 +1742,9 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise Promise {
@@ -1735,13 +1795,13 @@ export const shouldBehaveLikeLSP1Delegate = (buildContext: () => Promise Promise Promise Promise {
);
const lsp9Vault1 = await new LSP9Vault__factory(accounts.any).deploy(
- universalProfile.address,
+ await universalProfile.getAddress(),
);
const lsp9Vault2 = await new LSP9Vault__factory(accounts.any).deploy(
- universalProfile.address,
+ await universalProfile.getAddress(),
);
// Setting lsp1UniversalReceiverDelegateVault as URD for the Vault
const abi = lsp9Vault1.interface.encodeFunctionData('setData', [
ERC725YDataKeys.LSP1.LSP1UniversalReceiverDelegate,
- lsp1universalReceiverDelegateVault.address,
+ await lsp1universalReceiverDelegateVault.getAddress(),
]);
await universalProfile
.connect(accounts.owner1)
- .execute(OPERATION_TYPES.CALL, lsp9Vault1.address, 0, abi);
+ .execute(OPERATION_TYPES.CALL, await lsp9Vault1.getAddress(), 0, abi);
await universalProfile
.connect(accounts.owner1)
- .execute(OPERATION_TYPES.CALL, lsp9Vault2.address, 0, abi);
+ .execute(OPERATION_TYPES.CALL, await lsp9Vault2.getAddress(), 0, abi);
return {
accounts,
diff --git a/tests/LSP20CallVerification/LSP20CallVerification.behaviour.ts b/tests/LSP20CallVerification/LSP20CallVerification.behaviour.ts
index 3e1bb8a67..929627878 100644
--- a/tests/LSP20CallVerification/LSP20CallVerification.behaviour.ts
+++ b/tests/LSP20CallVerification/LSP20CallVerification.behaviour.ts
@@ -1,6 +1,6 @@
import { expect } from 'chai';
import { ethers, network } from 'hardhat';
-import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
// types
import {
@@ -50,8 +50,8 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
describe('when owner is an EOA', () => {
describe('when calling `setData(bytes32,bytes)`', () => {
- const dataKey = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('RandomKey1'));
- const dataValue = ethers.utils.hexlify(ethers.utils.randomBytes(50));
+ const dataKey = ethers.keccak256(ethers.toUtf8Bytes('RandomKey1'));
+ const dataValue = ethers.hexlify(ethers.randomBytes(50));
it('should pass when owner calls', async () => {
await context.universalProfile
@@ -71,8 +71,8 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
- const dataKey = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('RandomKey2'));
- const dataValue = ethers.utils.hexlify(ethers.utils.randomBytes(50));
+ const dataKey = ethers.keccak256(ethers.toUtf8Bytes('RandomKey2'));
+ const dataValue = ethers.hexlify(ethers.randomBytes(50));
it('should pass when owner calls', async () => {
await context.universalProfile
@@ -158,7 +158,7 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
const operationsType = [OPERATION_TYPES.CALL];
const recipients = [context.accounts[1].address];
- const values = [ethers.BigNumber.from('0')];
+ const values = [ethers.toBigInt('0')];
const datas = ['0x'];
await expect(
@@ -195,7 +195,7 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
it('should pass when the owner is calling', async () => {
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(500)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(500)]);
await expect(
context.universalProfile.connect(context.deployParams.owner).renounceOwnership(),
@@ -203,7 +203,7 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(100)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(100)]);
await expect(context.universalProfile.connect(context.accounts[3]).renounceOwnership())
.to.be.revertedWithCustomError(context.universalProfile, 'LSP20EOACannotVerifyCall')
@@ -215,12 +215,12 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
newContractOwner = await new OwnerWithURD__factory(context.accounts[0]).deploy(
- context.universalProfile.address,
+ await context.universalProfile.getAddress(),
);
await context.universalProfile
.connect(context.deployParams.owner)
- .transferOwnership(newContractOwner.address);
+ .transferOwnership(await newContractOwner.getAddress());
await newContractOwner.acceptOwnership();
});
@@ -232,7 +232,7 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
await context.universalProfile.connect(context.accounts[0]).renounceOwnership();
- await network.provider.send('hardhat_mine', [ethers.utils.hexValue(199)]);
+ await network.provider.send('hardhat_mine', [ethers.toQuantity(199)]);
const tx = await context.universalProfile
.connect(context.accounts[0])
@@ -241,12 +241,12 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise Promise {
@@ -282,8 +282,8 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
- const dataKey = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('RandomKey1'));
- const dataValue = ethers.utils.hexlify(ethers.utils.randomBytes(50));
+ const dataKey = ethers.keccak256(ethers.toUtf8Bytes('RandomKey1'));
+ const dataValue = ethers.hexlify(ethers.randomBytes(50));
await expect(context.universalProfile.setData(dataKey, dataValue))
.to.be.revertedWithCustomError(context.universalProfile, 'LSP20CallingVerifierFailed')
@@ -301,9 +301,9 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
@@ -315,8 +315,8 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
- const dataKey = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('RandomKey1'));
- const dataValue = ethers.utils.hexlify(ethers.utils.randomBytes(50));
+ const dataKey = ethers.keccak256(ethers.toUtf8Bytes('RandomKey1'));
+ const dataValue = ethers.hexlify(ethers.randomBytes(50));
await expect(
context.universalProfile.setData(dataKey, dataValue),
@@ -334,9 +334,9 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
@@ -348,8 +348,8 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
- const dataKey = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('RandomKey1'));
- const dataValue = ethers.utils.hexlify(ethers.utils.randomBytes(50));
+ const dataKey = ethers.keccak256(ethers.toUtf8Bytes('RandomKey1'));
+ const dataValue = ethers.hexlify(ethers.randomBytes(50));
await expect(context.universalProfile.setData(dataKey, dataValue)).to.emit(
ownerContract,
@@ -368,9 +368,9 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
@@ -382,8 +382,8 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
- const dataKey = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('RandomKey1'));
- const dataValue = ethers.utils.hexlify(ethers.utils.randomBytes(50));
+ const dataKey = ethers.keccak256(ethers.toUtf8Bytes('RandomKey1'));
+ const dataValue = ethers.hexlify(ethers.randomBytes(50));
await expect(
context.universalProfile.setData(dataKey, dataValue),
@@ -401,9 +401,9 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
@@ -415,8 +415,8 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise {
- const dataKey = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('RandomKey1'));
- const dataValue = ethers.utils.hexlify(ethers.utils.randomBytes(50));
+ const dataKey = ethers.keccak256(ethers.toUtf8Bytes('RandomKey1'));
+ const dataValue = ethers.hexlify(ethers.randomBytes(50));
await expect(context.universalProfile.setData(dataKey, dataValue))
.to.be.revertedWithCustomError(context.universalProfile, 'LSP20CallVerificationFailed')
@@ -434,13 +434,13 @@ export const shouldBehaveLikeLSP20 = (buildContext: () => Promise