From 00368a7e13674c9862371571eb295342e5307140 Mon Sep 17 00:00:00 2001 From: jessesawa Date: Fri, 23 Jan 2026 13:42:00 -0500 Subject: [PATCH 1/2] Update Readme with cleaner descriptions --- CONTRIBUTING.md | 27 +++++ README.md | 250 +++++++++------------------------------------- images/system.png | Bin 0 -> 83533 bytes package.json | 2 +- 4 files changed, 76 insertions(+), 203 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 images/system.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..d8539807 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# Contributing + +## Prerequisites + +- [Foundry](https://book.getfoundry.sh/getting-started/installation) + +## Setup + +```bash +git clone https://github.com/PredicateLabs/predicate-contracts +cd predicate-contracts +git submodule update --init --recursive +``` + +## Commands + +```bash +forge build # Compile contracts +forge test # Run tests +forge fmt # Format code +``` + +## Pull Requests + +- Ensure all tests pass (`forge test`) +- Format code before committing (`forge fmt`) +- Keep changes focused and well-documented diff --git a/README.md b/README.md index 77f9fa55..fff0457d 100644 --- a/README.md +++ b/README.md @@ -1,233 +1,79 @@ -# predicate-contracts +# predicate-contracts +Predicate is programmable policy infrastructure for onchain financial products in regulated markets. It allows developers to enforce custom compliance rules at the smart contract level. This repository holds the official solidity contracts for [Predicate's](https://predicate.io) Application Compliance offering. -Solidity library for creating compliant smart contracts application (e.g. Uniswap V4 hooks) using the Predicate network. +## How It Works -## Overview +![Predicate Application Compliance Flow](images/system.png) -Predicate Contracts v2 provides a simplified, production-ready implementation for on-chain compliance verification through attestation-based validation. This version features: +**Full integration guide:** [docs.predicate.io](https://docs.predicate.io/v2/applications/smart-contracts) -- **Simplified Architecture**: Single `PredicateRegistry` contract replacing complex ServiceManager -- **Easy Integration**: `PredicateClient` mixin for seamless integration into your contracts -- **Multiple Patterns**: Inheritance and Proxy patterns for different use cases -- **Enhanced Security**: ERC-7201 namespaced storage and statement-based validation -- **Production Ready**: Comprehensive test coverage and audit-ready code - -See [OVERVIEW.md](./OVERVIEW.md) for detailed technical documentation. - -## Quick Start - -### For Smart Contract Developers - -Integrate Predicate validation into your contract in 3 steps: - -```solidity -// 1. Import and inherit PredicateClient -import {PredicateClient} from "@predicate/mixins/PredicateClient.sol"; -import {Attestation} from "@predicate/interfaces/IPredicateRegistry.sol"; - -contract MyContract is PredicateClient { - - // 2. Initialize in constructor - constructor(address _registry, string memory _policy) { - _initPredicateClient(_registry, _policy); - } - - // 3. Add attestation parameter and validate - function protectedFunction( - address recipient, - uint256 amount, - Attestation calldata _attestation // Add this - ) external payable { - // Encode the internal function call - bytes memory encodedSigAndArgs = abi.encodeWithSignature( - "_internalFunction(address,uint256)", - recipient, - amount - ); - - // Validate the attestation - require( - _authorizeTransaction(_attestation, encodedSigAndArgs, msg.sender, msg.value), - "MyContract: unauthorized transaction" - ); - - // Execute business logic - _internalFunction(recipient, amount); - } - - function _internalFunction(address recipient, uint256 amount) internal { - // Your business logic here - } -} -``` - -See `src/examples/` for complete working examples. - -## Integration Patterns - -Predicate v2 supports multiple integration patterns: - -### 1. Inheritance Pattern (Recommended for most use cases) -- **Location**: `src/examples/inheritance/` -- **Best for**: Direct control, minimal dependencies -- Contract directly inherits `PredicateClient` -- Lowest gas cost, most straightforward - -### 2. Proxy Pattern (Recommended for separation of concerns) -- **Location**: `src/examples/proxy/` -- **Best for**: Clean separation, upgradeability -- Separate proxy contract handles validation -- Business logic contract remains simple - -See [src/examples/README.md](./src/examples/README.md) for detailed pattern documentation. - -## Architecture - -- **PredicateRegistry**: Core registry managing attesters, policies, and validation -- **PredicateClient**: Mixin contract for customer integration -- **Statement**: Data structure representing a transaction to be validated -- **Attestation**: Signed approval from an authorized attester +## Repository Structure ``` -User Transaction - ↓ -Your Contract (with PredicateClient) - ↓ -_authorizeTransaction() - ↓ -PredicateRegistry.validateAttestation() - ↓ -Verify signature & policy - ↓ -Execute business logic +src/ +├── PredicateRegistry.sol # Core registry contract (Predicate-owned) +│ # - Attester management +│ # - Attestation verification +│ # - UUID-based replay protection +│ +├── mixins/ +│ └── PredicateClient.sol # Inherit this in your contracts +│ # - _initPredicateClient() for setup +│ # - _authorizeTransaction() for validation +│ # - ERC-7201 namespaced storage +│ +├── interfaces/ +│ ├── IPredicateRegistry.sol # Registry interface + Statement/Attestation structs +│ └── IPredicateClient.sol # Client interface +│ +└── examples/ # Reference implementations + ├── inheritance/ # Direct inheritance pattern + └── proxy/ # Proxy pattern for separation of concerns ``` -## Key Concepts - -### Statement (formerly Task) -A `Statement` represents a claim about a transaction to be executed: -- UUID for replay protection -- Transaction parameters (sender, target, value, encoded function call) -- Policy identifier -- Expiration timestamp - -### Attestation -An `Attestation` is a signed approval from an authorized attester: -- Matching UUID from the statement -- Attester address -- ECDSA signature over the statement hash -- Expiration timestamp - -### Events for Monitoring - -Predicate v2 emits comprehensive events for off-chain monitoring: - -**PredicateRegistry events:** -- `AttesterRegistered` / `AttesterDeregistered` - Attester management -- `PolicySet` - Policy changes (emitted when client calls `setPolicyID()`) -- `StatementValidated` - Successful attestation validations - -**PredicateClient events** (from your contract): -- `PredicatePolicyIDUpdated` - Track policy changes in your contract -- `PredicateRegistryUpdated` - Alert on registry address changes (security-critical) - -**Note:** Transaction authorization is tracked via `StatementValidated` from PredicateRegistry (no duplicate event needed). - -These events enable: -- 📊 Analytics and usage tracking -- 🔍 Audit trails and compliance monitoring -- ⚠️ Security alerts (unexpected policy/registry changes) -- 🐛 Debugging and transaction analysis - -## Migration from v1 - -v2 introduces several improvements over v1: - -| Feature | v1 | v2 | -|---------|----|----| -| Architecture | Multiple ServiceManager components | Single PredicateRegistry | -| Validation | Quorum-based | Single attester signature | -| Policies | Complex objects | Simple string identifiers | -| Replay Protection | Block-based nonces | UUID-based with expiration | -| Client Integration | Direct calls | PredicateClient mixin | - -See [OVERVIEW.md](./OVERVIEW.md#migration-guide-for-v1--v2) for detailed migration guide. - ## Installation -This repository depends on some submodules. Please run the following command before testing. +### Foundry ```bash -git submodule update --init --recursive -``` - -### Foundry - -```shell -$ forge install PredicateLabs/predicate-contracts +forge install PredicateLabs/predicate-contracts ``` -### Node +### npm ```bash -npm install @predicate/predicate-contracts -``` - - -## Build - -```shell -$ forge build -``` - -### Test - -```shell -$ forge test +npm install @predicate/contracts ``` -### Format +## Quick Example -```shell -$ forge fmt -``` - -### Gas Snapshots - -```shell -$ forge snapshot -``` - -### Anvil - -```shell -$ anvil -``` +```solidity +import {PredicateClient} from "@predicate/contracts/src/mixins/PredicateClient.sol"; +import {Attestation} from "@predicate/contracts/src/interfaces/IPredicateRegistry.sol"; -### Cast +contract MyVault is PredicateClient { + constructor(address _registry, string memory _policyID) { + _initPredicateClient(_registry, _policyID); + } -```shell -$ cast + function deposit(uint256 amount, Attestation calldata attestation) external payable { + bytes memory encoded = abi.encodeWithSignature("_deposit(uint256)", amount); + require(_authorizeTransaction(attestation, encoded, msg.sender, msg.value), "Unauthorized"); + // ... business logic + } +} ``` ## Documentation -- **[OVERVIEW.md](./OVERVIEW.md)** - Complete technical overview of v2 architecture -- **[PLAN.md](./PLAN.md)** - Pre-deployment checklist and task tracking -- **[src/examples/README.md](./src/examples/README.md)** - Integration patterns guide -- **[src/examples/](./src/examples/)** - Working code examples - -## Contributing - -Contributions are welcome! Please ensure: -- All tests pass: `forge test` -- Code is formatted: `forge fmt` -- Changes are documented +- **Integration Guide:** [docs.predicate.io/v2/applications/smart-contracts](https://docs.predicate.io/v2/applications/smart-contracts) +- **Supported Chains:** [docs.predicate.io/v2/applications/supported-chains](https://docs.predicate.io/v2/applications/supported-chains) +- **API Reference:** [docs.predicate.io/api-reference](https://docs.predicate.io/api-reference/introduction) ## License See [LICENSE](./LICENSE) for details. -## Disclaimer +## Disclaimer -This library is provided as-is, without any guarantees or warranties. Use at your own risk. +This software is provided as-is. Use at your own risk. diff --git a/images/system.png b/images/system.png new file mode 100644 index 0000000000000000000000000000000000000000..12a30d324419f14db6e7663c4998ba1e633ada01 GIT binary patch literal 83533 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 z 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json index a55bb993..8d73a672 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@predicate/contracts", - "version": "1.0.10", + "version": "2.0.0", "description": "Core contracts for Predicate AVS", "main": "index.js", "files": [ From ab9664fe1463cc0c4a4c1e99409a98b1f7ab5f92 Mon Sep 17 00:00:00 2001 From: jessesawa Date: Fri, 23 Jan 2026 13:55:18 -0500 Subject: [PATCH 2/2] Match the release version of our contracts --- package-lock.json | 410 ++++++++++------------------------------------ package.json | 2 +- 2 files changed, 87 insertions(+), 325 deletions(-) diff --git a/package-lock.json b/package-lock.json index 88b07f37..d46ca80e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@predicate/contracts", - "version": "1.0.10", + "version": "2.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@predicate/contracts", - "version": "1.0.10", + "version": "2.2.0", "license": "MIT", "dependencies": { "fs": "^0.0.1-security", @@ -24,8 +24,7 @@ "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, - "peer": true + "dev": true }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", @@ -43,7 +42,6 @@ "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", "dev": true, - "peer": true, "bin": { "rlp": "bin/rlp" }, @@ -56,7 +54,6 @@ "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", "dev": true, - "peer": true, "dependencies": { "@ethereumjs/rlp": "^4.0.1", "ethereum-cryptography": "^2.0.0", @@ -71,7 +68,6 @@ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dev": true, - "peer": true, "dependencies": { "@noble/hashes": "1.4.0" }, @@ -84,7 +80,6 @@ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, - "peer": true, "engines": { "node": ">= 16" }, @@ -97,7 +92,6 @@ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dev": true, - "peer": true, "dependencies": { "@noble/curves": "~1.4.0", "@noble/hashes": "~1.4.0", @@ -112,7 +106,6 @@ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", "dev": true, - "peer": true, "dependencies": { "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" @@ -126,7 +119,6 @@ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "dev": true, - "peer": true, "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", @@ -266,7 +258,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/properties": "^5.7.0" @@ -346,7 +337,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/abstract-provider": "^5.7.0", @@ -402,7 +392,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/basex": "^5.7.0", @@ -433,7 +422,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -454,8 +442,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@ethersproject/keccak256": { "version": "5.7.0", @@ -527,7 +514,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/sha2": "^5.7.0" @@ -567,7 +553,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -596,7 +581,6 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true, - "peer": true, "engines": { "node": ">=8.3.0" }, @@ -628,7 +612,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" @@ -669,7 +652,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -715,7 +697,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -788,7 +769,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/constants": "^5.7.0", @@ -810,7 +790,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -867,7 +846,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/hash": "^5.7.0", @@ -928,7 +906,6 @@ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dev": true, - "peer": true, "dependencies": { "@noble/hashes": "1.3.2" }, @@ -941,7 +918,6 @@ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "dev": true, - "peer": true, "engines": { "node": ">= 16" }, @@ -978,7 +954,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "peer": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -992,7 +967,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "peer": true, "engines": { "node": ">= 8" } @@ -1002,7 +976,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "peer": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1254,7 +1227,6 @@ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.7.tgz", "integrity": "sha512-RFhGazR0/JqHxuuIxjjMmM+nWFqEvA7wcVqcX7vUqqmAIGuok4HhnWQH8aOvBaVguiXvvlFDJL0PIlxmkFgIUg==", "dev": true, - "peer": true, "dependencies": { "@nomicfoundation/ignition-core": "^0.15.7", "@nomicfoundation/ignition-ui": "^0.15.7", @@ -1288,7 +1260,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1304,7 +1275,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1321,7 +1291,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1333,15 +1302,13 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@nomicfoundation/hardhat-ignition/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, - "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1356,7 +1323,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -1366,7 +1332,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "peer": true, "dependencies": { "universalify": "^2.0.0" }, @@ -1379,7 +1344,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -1392,7 +1356,6 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, - "peer": true, "engines": { "node": ">= 10.0.0" } @@ -1402,7 +1365,6 @@ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.12.tgz", "integrity": "sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==", "dev": true, - "peer": true, "dependencies": { "ethereumjs-util": "^7.1.4" }, @@ -1415,7 +1377,6 @@ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dev": true, - "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -1439,7 +1400,6 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dev": true, - "peer": true, "dependencies": { "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", @@ -1503,7 +1463,6 @@ "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.7.tgz", "integrity": "sha512-C4/0V/q2gNxKDt88cMr+Oxlf4NINQ7QgmJyciQ1/6UdCRUg+/Pgdgpd3vgGXQVTotq50Q/BU4ofNUAD/8HRqtg==", "dev": true, - "peer": true, "dependencies": { "@ethersproject/address": "5.6.1", "@nomicfoundation/solidity-analyzer": "^0.1.1", @@ -1531,7 +1490,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.6.2", "@ethersproject/bytes": "^5.6.1", @@ -1545,7 +1503,6 @@ "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", "dev": true, - "peer": true, "dependencies": { "nofilter": "^3.1.0" }, @@ -1558,7 +1515,6 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, - "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1573,7 +1529,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "peer": true, "dependencies": { "universalify": "^2.0.0" }, @@ -1586,7 +1541,6 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, - "peer": true, "engines": { "node": ">= 10.0.0" } @@ -1595,8 +1549,7 @@ "version": "0.15.7", "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.7.tgz", "integrity": "sha512-pj2LmXylgbHOTNrkFqFrre/FAOjcwYl4VKIKVH/QMMBH/DatbiT8aC5n9o2fbLD8uwlPEesD+uXZuKCE71KFBg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@nomicfoundation/solidity-analyzer": { "version": "0.1.2", @@ -1835,7 +1788,6 @@ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", "dev": true, - "peer": true, "dependencies": { "antlr4ts": "^0.5.0-alpha.4" } @@ -1881,7 +1833,6 @@ "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", "dev": true, - "peer": true, "dependencies": { "fs-extra": "^9.1.0" }, @@ -1897,7 +1848,6 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, - "peer": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -1913,7 +1863,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "peer": true, "dependencies": { "universalify": "^2.0.0" }, @@ -1926,7 +1875,6 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, - "peer": true, "engines": { "node": ">= 10.0.0" } @@ -1952,7 +1900,6 @@ "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", "dev": true, - "peer": true, "dependencies": { "@types/chai": "*" } @@ -1962,7 +1909,6 @@ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*" } @@ -1972,7 +1918,6 @@ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*" } @@ -1982,7 +1927,6 @@ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, - "peer": true, "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -1998,8 +1942,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@types/mocha": { "version": "10.0.9", @@ -2013,6 +1956,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.9.tgz", "integrity": "sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.19.2" } @@ -2030,15 +1974,13 @@ "version": "2.7.3", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@types/qs": { "version": "6.9.16", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@types/secp256k1": { "version": "4.0.6", @@ -2053,8 +1995,7 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/acorn": { "version": "8.13.0", @@ -2091,8 +2032,7 @@ "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, - "peer": true + "dev": true }, "node_modules/agent-base": { "version": "6.0.2", @@ -2124,7 +2064,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2136,6 +2075,17 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "license": "BSD-3-Clause OR MIT", + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -2194,8 +2144,7 @@ "version": "0.5.0-alpha.4", "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/anymatch": { "version": "3.1.3", @@ -2226,7 +2175,6 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -2236,7 +2184,6 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -2246,7 +2193,6 @@ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -2255,15 +2201,13 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, - "peer": true, "engines": { "node": "*" } @@ -2273,7 +2217,6 @@ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -2282,22 +2225,19 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, - "peer": true, "engines": { "node": ">= 4.0.0" } @@ -2307,7 +2247,6 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dev": true, - "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -2333,8 +2272,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/binary-extensions": { "version": "2.3.0", @@ -2558,7 +2496,6 @@ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "peer": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -2589,15 +2526,13 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/cbor": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "dev": true, - "peer": true, "dependencies": { "nofilter": "^3.1.0" }, @@ -2629,7 +2564,6 @@ "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", "dev": true, - "peer": true, "dependencies": { "check-error": "^1.0.2" }, @@ -2656,7 +2590,6 @@ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, - "peer": true, "engines": { "node": "*" } @@ -2666,7 +2599,6 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, - "peer": true, "dependencies": { "get-func-name": "^2.0.2" }, @@ -2731,7 +2663,6 @@ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", "dev": true, - "peer": true, "dependencies": { "object-assign": "^4.1.0", "string-width": "^2.1.1" @@ -2748,7 +2679,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -2758,7 +2688,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -2768,7 +2697,6 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, - "peer": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -2782,7 +2710,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, - "peer": true, "dependencies": { "ansi-regex": "^3.0.0" }, @@ -2821,7 +2748,6 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, - "peer": true, "engines": { "node": ">=0.1.90" } @@ -2831,7 +2757,6 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "peer": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -2850,7 +2775,6 @@ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, - "peer": true, "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -2866,7 +2790,6 @@ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, - "peer": true, "dependencies": { "array-back": "^4.0.2", "chalk": "^2.4.2", @@ -2882,7 +2805,6 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -2892,7 +2814,6 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -2920,7 +2841,6 @@ "engines": [ "node >= 0.8" ], - "peer": true, "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -2933,7 +2853,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -2948,15 +2867,13 @@ "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, - "peer": true + "dev": true }, "node_modules/concat-stream/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==", "dev": true, - "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -2974,8 +2891,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/create-hash": { "version": "1.2.0", @@ -3014,7 +2930,6 @@ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, - "peer": true, "engines": { "node": "*" } @@ -3023,8 +2938,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/debug": { "version": "4.3.7", @@ -3060,7 +2974,6 @@ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, - "peer": true, "dependencies": { "type-detect": "^4.0.0" }, @@ -3073,7 +2986,6 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, - "peer": true, "engines": { "node": ">=4.0.0" } @@ -3082,15 +2994,13 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, - "peer": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -3108,7 +3018,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "peer": true, "engines": { "node": ">=0.4.0" } @@ -3136,7 +3045,6 @@ "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", "dev": true, - "peer": true, "dependencies": { "heap": ">= 0.2.0" }, @@ -3149,7 +3057,6 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "peer": true, "dependencies": { "path-type": "^4.0.0" }, @@ -3217,7 +3124,6 @@ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, - "peer": true, "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -3230,7 +3136,6 @@ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "peer": true, "engines": { "node": ">= 0.4" } @@ -3258,7 +3163,6 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", "dev": true, - "peer": true, "dependencies": { "esprima": "^2.7.1", "estraverse": "^1.9.1", @@ -3276,12 +3180,24 @@ "source-map": "~0.2.0" } }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "dev": true, + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/esprima": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", "dev": true, - "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -3295,7 +3211,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3305,7 +3220,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3315,7 +3229,6 @@ "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", "dev": true, - "peer": true, "dependencies": { "@solidity-parser/parser": "^0.14.0", "axios": "^1.5.1", @@ -3355,7 +3268,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abi": "5.7.0", "@ethersproject/abstract-provider": "5.7.0", @@ -3394,7 +3306,6 @@ "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==", "dev": true, - "peer": true, "dependencies": { "@noble/hashes": "^1.4.0" } @@ -3404,7 +3315,6 @@ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", "dev": true, - "peer": true, "engines": { "node": "^14.21.3 || >=16" }, @@ -3527,7 +3437,6 @@ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "dev": true, - "peer": true, "engines": { "node": ">= 16" }, @@ -3540,7 +3449,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "dev": true, - "peer": true, "dependencies": { "undici-types": "~6.19.2" } @@ -3549,15 +3457,13 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/ethers/node_modules/ws": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -3579,7 +3485,6 @@ "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", "dev": true, - "peer": true, "dependencies": { "bn.js": "4.11.6", "number-to-bn": "1.7.0" @@ -3593,8 +3498,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/ethjs-util": { "version": "0.1.6", @@ -3624,15 +3528,13 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "peer": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3648,22 +3550,19 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/fast-uri": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "peer": true, "dependencies": { "reusify": "^1.0.4" } @@ -3685,7 +3584,6 @@ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, - "peer": true, "dependencies": { "array-back": "^3.0.1" }, @@ -3748,7 +3646,6 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, - "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3788,8 +3685,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -3816,7 +3712,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3835,7 +3730,6 @@ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, - "peer": true, "engines": { "node": "*" } @@ -3845,7 +3739,6 @@ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, - "peer": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -3865,7 +3758,6 @@ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -3875,7 +3767,6 @@ "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", "dev": true, - "peer": true, "dependencies": { "chalk": "^2.4.2", "node-emoji": "^1.10.0" @@ -3922,7 +3813,6 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, - "peer": true, "dependencies": { "global-prefix": "^3.0.0" }, @@ -3935,7 +3825,6 @@ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, - "peer": true, "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -3950,7 +3839,6 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, - "peer": true, "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", @@ -3970,7 +3858,6 @@ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "peer": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -3989,7 +3876,6 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, - "peer": true, "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -4010,6 +3896,7 @@ "version": "2.22.14", "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.14.tgz", "integrity": "sha512-sD8vHtS9l5QQVHzyPPe3auwZDJyZ0fG3Z9YENVa4oOqVEefCuHcPzdU736rei3zUKTqkX0zPIHkSMHpu02Fq1A==", + "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", "@metamask/eth-sig-util": "^4.0.0", @@ -4113,7 +4000,6 @@ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "peer": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -4126,7 +4012,6 @@ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -4139,7 +4024,6 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -4176,7 +4060,6 @@ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "peer": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -4197,8 +4080,7 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/hmac-drbg": { "version": "1.0.1", @@ -4216,7 +4098,6 @@ "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, - "peer": true, "dependencies": { "caseless": "^0.12.0", "concat-stream": "^1.6.2", @@ -4248,7 +4129,6 @@ "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", "dev": true, - "peer": true, "dependencies": { "@types/node": "^10.0.3" } @@ -4257,8 +4137,7 @@ "version": "10.17.60", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/https-proxy-agent": { "version": "5.0.1", @@ -4290,7 +4169,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, - "peer": true, "engines": { "node": ">= 4" } @@ -4300,7 +4178,6 @@ "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", "dev": true, - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -4351,15 +4228,13 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "peer": true + "dev": true }, "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, - "peer": true, "engines": { "node": ">= 0.10" } @@ -4459,15 +4334,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/js-sha3": { "version": "0.8.0", @@ -4491,8 +4364,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "peer": true + "dev": true }, "node_modules/json-stream-stringify": { "version": "3.1.6", @@ -4507,15 +4379,13 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -4537,7 +4407,6 @@ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", "dev": true, - "peer": true, "engines": { "node": "*" } @@ -4562,7 +4431,6 @@ "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" } @@ -4572,7 +4440,6 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -4582,7 +4449,6 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, - "peer": true, "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -4614,29 +4480,25 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "peer": true + "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 + "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 + "dev": true }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", @@ -4729,7 +4591,6 @@ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, - "peer": true, "dependencies": { "get-func-name": "^2.0.1" } @@ -4749,8 +4610,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/md5.js": { "version": "1.3.5", @@ -4776,7 +4636,6 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "peer": true, "engines": { "node": ">= 8" } @@ -4785,15 +4644,13 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "peer": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -4807,7 +4664,6 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -4817,7 +4673,6 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "peer": true, "dependencies": { "mime-db": "1.52.0" }, @@ -4854,7 +4709,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4864,7 +4718,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "peer": true, "dependencies": { "minimist": "^1.2.6" }, @@ -5121,7 +4974,6 @@ "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", "dev": true, - "peer": true, "dependencies": { "json-stringify-safe": "^5.0.1", "minimist": "^1.2.5", @@ -5140,8 +4992,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/node-addon-api": { "version": "2.0.2", @@ -5154,7 +5005,6 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", "dev": true, - "peer": true, "dependencies": { "lodash": "^4.17.21" } @@ -5175,7 +5025,6 @@ "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", "dev": true, - "peer": true, "engines": { "node": ">=12.19" } @@ -5185,7 +5034,6 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", "dev": true, - "peer": true, "dependencies": { "abbrev": "1" }, @@ -5207,7 +5055,6 @@ "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", "dev": true, - "peer": true, "dependencies": { "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" @@ -5221,15 +5068,13 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -5239,7 +5084,6 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -5267,7 +5111,6 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, - "peer": true, "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -5284,8 +5127,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/os-tmpdir": { "version": "1.0.2", @@ -5348,8 +5190,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/path-exists": { "version": "3.0.0", @@ -5380,7 +5221,6 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -5390,7 +5230,6 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, - "peer": true, "engines": { "node": "*" } @@ -5428,7 +5267,6 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -5438,7 +5276,6 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8.0" } @@ -5448,7 +5285,6 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, - "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -5463,15 +5299,13 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "peer": true + "dev": true }, "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, - "peer": true, "dependencies": { "asap": "~2.0.6" } @@ -5481,7 +5315,6 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "peer": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -5494,15 +5327,13 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, - "peer": true, "dependencies": { "side-channel": "^1.0.6" }, @@ -5531,8 +5362,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "peer": true + ] }, "node_modules/randombytes": { "version": "2.1.0", @@ -5590,7 +5420,6 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, - "peer": true, "dependencies": { "resolve": "^1.1.6" }, @@ -5603,7 +5432,6 @@ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dev": true, - "peer": true, "dependencies": { "minimatch": "^3.0.5" }, @@ -5616,7 +5444,6 @@ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -5626,7 +5453,6 @@ "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", "dev": true, - "peer": true, "dependencies": { "req-from": "^2.0.0" }, @@ -5639,7 +5465,6 @@ "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", "dev": true, - "peer": true, "dependencies": { "resolve-from": "^3.0.0" }, @@ -5661,7 +5486,6 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -5683,7 +5507,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -5693,7 +5516,6 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "peer": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -5740,7 +5562,6 @@ "url": "https://feross.org/support" } ], - "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } @@ -5776,7 +5597,6 @@ "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", "dev": true, - "peer": true, "dependencies": { "abbrev": "1.0.x", "async": "1.x", @@ -5802,7 +5622,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "peer": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -5813,7 +5632,6 @@ "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "peer": true, "dependencies": { "inflight": "^1.0.4", "inherits": "2", @@ -5830,7 +5648,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -5840,7 +5657,6 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "peer": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -5854,7 +5670,6 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -5867,15 +5682,13 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/sc-istanbul/node_modules/supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^1.0.0" }, @@ -5954,7 +5767,6 @@ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "peer": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -5997,7 +5809,6 @@ "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", "dev": true, - "peer": true, "dependencies": { "charenc": ">= 0.0.1", "crypt": ">= 0.0.1" @@ -6011,7 +5822,6 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, - "peer": true, "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -6029,7 +5839,6 @@ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -6047,15 +5856,13 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6065,7 +5872,6 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -6083,7 +5889,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -6099,7 +5904,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -6111,8 +5915,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/solc": { "version": "0.8.26", @@ -6149,7 +5952,6 @@ "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.13.tgz", "integrity": "sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==", "dev": true, - "peer": true, "dependencies": { "@ethersproject/abi": "^5.0.9", "@solidity-parser/parser": "^0.18.0", @@ -6182,15 +5984,13 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/solidity-coverage/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -6205,7 +6005,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -6237,7 +6036,6 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, - "peer": true, "dependencies": { "readable-stream": "^3.0.0" } @@ -6246,8 +6044,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "peer": true + "dev": true }, "node_modules/stacktrace-parser": { "version": "0.1.10", @@ -6292,8 +6089,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/string-width": { "version": "4.2.3", @@ -6363,7 +6159,6 @@ "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", "dev": true, - "peer": true, "dependencies": { "http-response-object": "^3.0.1", "sync-rpc": "^1.2.1", @@ -6378,7 +6173,6 @@ "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", "dev": true, - "peer": true, "dependencies": { "get-port": "^3.1.0" } @@ -6388,7 +6182,6 @@ "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, - "peer": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -6405,7 +6198,6 @@ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dev": true, - "peer": true, "dependencies": { "array-back": "^4.0.1", "deep-extend": "~0.6.0", @@ -6421,7 +6213,6 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6431,7 +6222,6 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6441,7 +6231,6 @@ "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, - "peer": true, "dependencies": { "@types/concat-stream": "^1.6.0", "@types/form-data": "0.0.33", @@ -6463,15 +6252,13 @@ "version": "8.10.66", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/then-request/node_modules/form-data": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", "dev": true, - "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -6487,7 +6274,6 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, - "peer": true, "dependencies": { "readable-stream": "3" } @@ -6530,7 +6316,6 @@ "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", "dev": true, - "peer": true, "dependencies": { "chalk": "^4.1.0", "command-line-args": "^5.1.1", @@ -6546,7 +6331,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -6562,7 +6346,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6579,7 +6362,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -6591,15 +6373,13 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/ts-command-line-args/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6609,7 +6389,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6622,7 +6401,6 @@ "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true, - "peer": true, "peerDependencies": { "typescript": ">=3.7.0" } @@ -6631,6 +6409,7 @@ "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -6706,7 +6485,6 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, - "peer": true, "dependencies": { "prelude-ls": "~1.1.2" }, @@ -6719,7 +6497,6 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -6767,7 +6544,6 @@ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6788,7 +6564,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -6800,13 +6575,13 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/typescript": { "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6820,7 +6595,6 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6865,8 +6639,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/util-deprecate": { "version": "1.0.2", @@ -6893,7 +6666,6 @@ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", "dev": true, - "peer": true, "dependencies": { "@ethereumjs/util": "^8.1.0", "bn.js": "^5.2.1", @@ -6913,7 +6685,6 @@ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dev": true, - "peer": true, "dependencies": { "@noble/hashes": "1.4.0" }, @@ -6926,7 +6697,6 @@ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, - "peer": true, "engines": { "node": ">= 16" }, @@ -6939,7 +6709,6 @@ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dev": true, - "peer": true, "dependencies": { "@noble/curves": "~1.4.0", "@noble/hashes": "~1.4.0", @@ -6954,7 +6723,6 @@ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", "dev": true, - "peer": true, "dependencies": { "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" @@ -6968,7 +6736,6 @@ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "dev": true, - "peer": true, "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", @@ -6981,7 +6748,6 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -7006,7 +6772,6 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -7015,15 +6780,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/wordwrapjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "dev": true, - "peer": true, "dependencies": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" @@ -7037,7 +6800,6 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, - "peer": true, "engines": { "node": ">=8" } diff --git a/package.json b/package.json index 8d73a672..06e72e01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@predicate/contracts", - "version": "2.0.0", + "version": "2.2.0", "description": "Core contracts for Predicate AVS", "main": "index.js", "files": [